:root {
  --ws-navy: #123047;
  --ws-navy-dark: #0b202f;
  --ws-teal: #236f70;
  --ws-teal-dark: #185759;
  --ws-aqua: #eaf6f4;
  --ws-sand: #f5f1e8;
  --ws-paper: #fcfbf8;
  --ws-white: #ffffff;
  --ws-ink: #263238;
  --ws-muted: #65717a;
  --ws-line: #d8e1df;
  --ws-terracotta: #a95443;
  --ws-gold: #e7c978;
  --ws-shadow: 0 22px 54px rgba(18, 48, 71, 0.09);
}

body.ws-site-presentation {
  background: var(--ws-paper);
  color: var(--ws-ink);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 17px;
  line-height: 1.85;
}

.ws-site-presentation *,
.ws-site-presentation *::before,
.ws-site-presentation *::after { box-sizing: border-box; }
.ws-site-presentation a { text-underline-offset: 4px; }
.ws-site-presentation a:focus-visible { outline: 3px solid rgba(35, 111, 112, .35); outline-offset: 4px; }
.ws-site-presentation .i-header { display: none !important; }

.ws-site-header {
  background: rgba(252, 251, 248, .96);
  border-bottom: 1px solid rgba(18, 48, 71, .12);
  backdrop-filter: blur(14px);
  position: sticky;
  top: 0;
  z-index: 999;
}
.admin-bar .ws-site-header { top: 32px; }
.ws-site-header__inner {
  align-items: center;
  display: flex;
  height: 78px;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1200px;
  padding: 0 28px;
}
.ws-site-brand { align-items: center; color: var(--ws-navy); display: flex; gap: 12px; text-decoration: none; }
.ws-site-brand__mark {
  align-items: center; background: var(--ws-teal); border-radius: 50%; color: #fff;
  display: flex; flex: 0 0 44px; height: 44px; justify-content: center; width: 44px;
}
.ws-site-brand__mark svg { height: 28px; width: 28px; }
.ws-site-brand__copy strong, .ws-site-brand__copy small { display: block; }
.ws-site-brand__copy strong { font-size: 16px; letter-spacing: .02em; line-height: 1.35; }
.ws-site-brand__copy small { color: var(--ws-muted); font-size: 9px; font-weight: 700; letter-spacing: .08em; margin-top: 2px; }
.ws-site-nav { align-items: center; display: flex; gap: 25px; }
.ws-site-nav a, .ws-site-nav .ws-link-unavailable { color: var(--ws-navy); font-size: 12px; font-weight: 800; text-decoration: none; }
.ws-site-nav a:hover { color: var(--ws-teal); }
.ws-site-nav .ws-link-unavailable { color: #9aa4a8; cursor: not-allowed; }

/* GOLD MEDIA single-post integration */
.ws-site-presentation.single-post .l-main { background: var(--ws-paper); overflow: visible; }
.ws-site-presentation.single-post .l-breadcrumb { background: #fff; border-bottom: 1px solid var(--ws-line); }
.ws-site-presentation.single-post .l-breadcrumb .container { max-width: 1120px; padding-bottom: 15px; padding-top: 15px; }
.ws-site-presentation.single-post .l-keyvisual_post {
  background: radial-gradient(circle at 86% 10%, rgba(35,111,112,.13), transparent 28rem), linear-gradient(180deg,#f7faf8 0%,#fcfbf8 100%);
  border-bottom: 1px solid var(--ws-line);
  margin: 0;
  padding: clamp(44px, 7vw, 78px) 0 clamp(42px, 6vw, 66px);
}
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__bg { display: none !important; }
.ws-site-presentation.single-post .l-keyvisual_post .c-keyvisual { max-width: 1060px; padding-left: 24px; padding-right: 24px; }
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__contents,
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__text_area { width: 100%; }
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__text_area__inner { align-items: center; display: grid; gap: 28px; grid-template-columns: minmax(0,1fr); }
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__time,
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__time_posted { display: none !important; }
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__time_posted {
  align-items: center; background: var(--ws-sand); border: 1px solid #ead9ad; border-radius: 50%; color: var(--ws-navy);
  flex-direction: column; height: 82px; justify-content: center; width: 82px;
}
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__time_posted__d { font-size: 18px; font-weight: 900; }
.ws-site-presentation.single-post .l-keyvisual_post .keyvisual__time_posted__y { font-size: 10px; font-weight: 800; }
.ws-site-presentation.single-post .l-keyvisual_post h1 {
  color: var(--ws-navy); font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Yu Gothic", sans-serif;
  font-size: clamp(32px, 4vw, 48px); letter-spacing: .01em; line-height: 1.32; margin: 0;
}
.ws-site-presentation.single-post .l-keyvisual_post .date_list { margin-left: 0; margin-top: 18px; }
.ws-site-presentation.single-post.ws-article-hero-enhanced .l-keyvisual_post .keyvisual__text_area__inner {
  align-items: center; gap: clamp(30px,5vw,58px); grid-template-columns: minmax(0,1.12fr) minmax(300px,.88fr);
}
.ws-site-presentation.single-post .ws-article-hero-copy { min-width: 0; }
.ws-site-presentation.single-post .ws-article-featured {
  background: var(--ws-sand); border: 1px solid rgba(18,48,71,.1); border-radius: 24px; box-shadow: var(--ws-shadow);
  margin: 26px 0 34px; overflow: hidden;
}
.ws-site-presentation.single-post.ws-article-hero-enhanced .ws-article-featured { margin: 0; }
.ws-site-presentation.single-post .ws-article-featured__image { aspect-ratio: 16/9; display: block; height: auto; object-fit: cover; width: 100%; }
.ws-site-presentation.single-post .ws-article-featured figcaption { background: rgba(18,48,71,.92); color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .06em; padding: 7px 12px; }
.ws-site-presentation.single-post .main_content-is-post {
  background: transparent; color: var(--ws-ink); margin: 0 auto; max-width: 860px; padding: 64px 0 110px; width: calc(100% - 48px);
}
.ws-site-presentation.single-post .main_content-is-post > .independence { display: none !important; }
.ws-site-presentation.single-post .main_content-is-post > .sns_list,
.ws-site-presentation.single-post .sub_content-is-post { display: none !important; }
.ws-site-presentation.single-post .main_content-is-post > p { font-size: 16px; line-height: 1.95; margin: 0 0 24px; }
.ws-site-presentation.single-post .main_content-is-post > .ws-pr-disclosure {
  color: var(--ws-terracotta); font-size: 12px; font-weight: 900; letter-spacing: .08em; margin-bottom: 20px;
}
.ws-site-presentation.single-post .main_content-is-post > .ws-pr-disclosure + p { color: #3d4d54; font-size: 19px; font-weight: 650; }
.ws-site-presentation.single-post .main_content-is-post > h2 {
  background: linear-gradient(90deg, rgba(234,246,244,.9), rgba(234,246,244,0));
  border: 0; border-left: 6px solid var(--ws-teal); color: var(--ws-navy);
  font-size: clamp(27px, 4vw, 37px); line-height: 1.45; margin: 78px 0 28px; padding: 12px 0 12px 22px;
}
.ws-site-presentation.single-post .main_content-is-post > h3 {
  color: var(--ws-navy); font-size: 22px; line-height: 1.55; margin: 46px 0 15px; padding-bottom: 9px; position: relative;
}
.ws-site-presentation.single-post .main_content-is-post > h3::after {
  background: linear-gradient(90deg,var(--ws-teal),transparent); bottom: 0; content: ""; height: 2px; left: 0; position: absolute; width: 90px;
}
.ws-site-presentation.single-post .main_content-is-post > blockquote.wp-block-quote {
  background: var(--ws-aqua); border: 0; border-left: 5px solid var(--ws-teal); border-radius: 16px;
  color: #304047; margin: 30px 0; padding: 22px 26px;
}
.ws-site-presentation.single-post .main_content-is-post > blockquote.wp-block-quote:first-of-type {
  background: #fff4cf; border: 1px solid var(--ws-gold); border-left: 7px solid var(--ws-terracotta); box-shadow: var(--ws-shadow); font-size: 18px; padding: 26px 30px;
}
.ws-site-presentation.single-post .main_content-is-post blockquote p { margin: 0; }
.ws-site-presentation.single-post .main_content-is-post .outline {
  background: #fff; border: 1px solid var(--ws-line); border-radius: 18px; box-shadow: 0 14px 36px rgba(18,48,71,.05);
  margin: 44px 0 54px; overflow: hidden; padding: 0;
}
.ws-site-presentation.single-post .main_content-is-post .outline > .heading { background: var(--ws-navy); color: #fff !important; margin: 0; padding: 18px 22px; }
.ws-site-presentation.single-post .main_content-is-post .outline ul { margin: 0; padding: 20px 28px 24px 48px; }
.ws-site-presentation.single-post .main_content-is-post .outline a { color: var(--ws-teal-dark); font-weight: 700; }
.ws-site-presentation.single-post .main_content-is-post .wp-block-table { border: 1px solid var(--ws-line); border-radius: 15px; margin: 32px 0; overflow-x: auto; }
.ws-site-presentation.single-post .main_content-is-post .wp-block-table table { border-collapse: collapse; min-width: 680px; width: 100%; }
.ws-site-presentation.single-post .main_content-is-post .wp-block-table th,
.ws-site-presentation.single-post .main_content-is-post .wp-block-table td { border: 0; border-bottom: 1px solid var(--ws-line); font-size: 13px; line-height: 1.65; padding: 14px; text-align: left; vertical-align: top; }
.ws-site-presentation.single-post .main_content-is-post .wp-block-table thead th { background: var(--ws-navy); color: #fff; }
.ws-site-presentation.single-post .main_content-is-post .wp-block-table tbody tr:nth-child(even) { background: var(--ws-sand); }
.ws-site-presentation.single-post .main_content-is-post > ul,
.ws-site-presentation.single-post .main_content-is-post > ol { margin: 0 0 28px; padding-left: 1.55em; }
.ws-site-presentation.single-post .main_content-is-post > ul li,
.ws-site-presentation.single-post .main_content-is-post > ol li { margin: 8px 0; }
.ws-site-presentation.single-post .main_content-is-post > h3:last-of-type {
  background: var(--ws-aqua); border-radius: 20px 20px 0 0; margin-bottom: 0; padding: 25px 28px 7px;
}
.ws-site-presentation.single-post .main_content-is-post > h3:last-of-type::after { display: none; }
.ws-site-presentation.single-post .main_content-is-post > h3:last-of-type + p { background: var(--ws-aqua); margin: 0; padding: 0 28px 12px; }
.ws-site-presentation.single-post .main_content-is-post > h3:last-of-type + p + p { background: var(--ws-aqua); border-radius: 0 0 20px 20px; margin: 0 0 60px; padding: 0 28px 25px; }
.ws-site-presentation.single-post .main_content-is-post a { color: var(--ws-teal-dark); font-weight: 750; }
.ws-site-presentation.single-post .ws-link-pending { border-bottom: 1px dotted #89949a; color: var(--ws-muted); }

/* Fixed foundation pages */
.ws-site-presentation.type-page .l-main { background: var(--ws-paper); }
.ws-site-presentation.type-page .l-breadcrumb { background: #fff; border-bottom: 1px solid var(--ws-line); }
.ws-site-presentation.type-page .l-keyvisual_page,
.ws-site-presentation.type-page .l-keyvisual_post { background: linear-gradient(135deg,#edf7f5 0%,#fcfbf8 68%); border-bottom: 1px solid var(--ws-line); }
.ws-site-presentation.type-page .l-keyvisual_page h1,
.ws-site-presentation.type-page .l-keyvisual_post h1 { color: var(--ws-navy); font-size: clamp(32px,4.5vw,50px); line-height: 1.35; }
.ws-site-presentation.type-page .main_content-is-page,
.ws-site-presentation.type-page .main_content { margin-left: auto; margin-right: auto; max-width: 900px; }
.ws-foundation-page { color: var(--ws-ink); font-size: 16px; line-height: 1.95; padding-bottom: 90px; }
.ws-foundation-page > p { margin: 0 0 24px; }
.ws-foundation-page .ws-page-lead { color: #344950; font-size: clamp(18px,2vw,21px); font-weight: 700; line-height: 1.85; margin-bottom: 42px; }
.ws-foundation-page h2 { background: linear-gradient(90deg,var(--ws-aqua),transparent); border-left: 6px solid var(--ws-teal); color: var(--ws-navy); font-size: clamp(25px,3vw,34px); line-height: 1.45; margin: 64px 0 24px; padding: 11px 0 11px 20px; }
.ws-foundation-page ul,
.ws-foundation-page ol { background: #fff; border: 1px solid var(--ws-line); border-radius: 16px; margin: 26px 0 32px; padding: 22px 28px 22px 52px; }
.ws-foundation-page li { margin: 7px 0; }
.ws-foundation-page a { color: var(--ws-teal-dark); font-weight: 800; }
.ws-foundation-page .ws-page-note { background: var(--ws-sand); border-left: 4px solid var(--ws-gold); border-radius: 12px; color: #4b5558; font-size: 13px; padding: 18px 20px; }
.ws-operator-card { background: #fff; border: 1px solid var(--ws-line); border-radius: 22px; box-shadow: 0 16px 38px rgba(18,48,71,.06); margin: 34px 0 52px; padding: 28px 30px; }
.ws-operator-card p { margin: 0; }
.ws-operator-card__label { color: var(--ws-terracotta); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.ws-operator-card__name { color: var(--ws-navy); font-size: 21px; font-weight: 900; padding: 4px 0 9px; }
.ws-contact-guidance { background: var(--ws-aqua); border-radius: 18px; margin: 30px 0 42px; padding: 6px 26px 24px; }
.ws-contact-guidance h2 { background: none; border: 0; font-size: 21px; margin: 18px 0 12px; padding: 0; }
.ws-contact-guidance p { margin: 8px 0; }
.ws-contact-form-wrap { margin-top: 40px; }
.ws-contact-form { background: #fff; border: 1px solid var(--ws-line); border-radius: 22px; box-shadow: var(--ws-shadow); padding: clamp(24px,5vw,44px); }
.ws-contact-field { margin: 0 0 24px; }
.ws-contact-field label { color: var(--ws-navy); display: block; font-size: 13px; font-weight: 900; margin-bottom: 8px; }
.ws-contact-field label span { background: var(--ws-terracotta); border-radius: 999px; color: #fff; font-size: 9px; margin-left: 7px; padding: 3px 7px; }
.ws-contact-field input,
.ws-contact-field select,
.ws-contact-field textarea { background: #fbfcfb; border: 1px solid #bdccca; border-radius: 10px; color: var(--ws-ink); font: inherit; padding: 12px 14px; width: 100%; }
.ws-contact-field input:focus,
.ws-contact-field select:focus,
.ws-contact-field textarea:focus { border-color: var(--ws-teal); box-shadow: 0 0 0 3px rgba(35,111,112,.14); outline: 0; }
.ws-contact-consent { font-size: 13px; }
.ws-contact-honeypot { height: 0; left: -9999px; overflow: hidden; position: absolute; width: 0; }
.ws-contact-submit { background: var(--ws-teal); border: 0; border-radius: 999px; color: #fff; cursor: pointer; font-size: 14px; font-weight: 900; padding: 14px 25px; }
.ws-contact-submit:hover { background: var(--ws-teal-dark); transform: translateY(-1px); }
.ws-contact-message { border-radius: 14px; margin-bottom: 24px; padding: 18px 20px; }
.ws-contact-message--success { background: #eaf7ed; border: 1px solid #9bc9a5; color: #245c31; }
.ws-contact-message--error { background: #fff0ee; border: 1px solid #d7aaa3; color: #7d3328; }

/* Article-end decision Q&A. Answers are drawn from the article itself. */
.ws-site-presentation .ws-article-faq {
  background: #fff; border: 1px solid #cbd9d7; border-radius: 26px; box-shadow: 0 22px 56px rgba(18,48,71,.09);
  clear: both; margin: clamp(66px,9vw,104px) 0 52px; overflow: hidden;
}
.ws-site-presentation .ws-article-faq__head {
  background: radial-gradient(circle at 92% 15%,rgba(98,170,165,.28),transparent 18rem),linear-gradient(145deg,#123047,#0d2638);
  color: #fff; padding: clamp(28px,5vw,46px) clamp(24px,6vw,54px) 36px;
}
.ws-site-presentation .ws-article-faq__eyebrow { color: #e7c978; font-size: 12px; font-weight: 900; letter-spacing: .15em; margin: 0 0 13px; }
.ws-site-presentation .ws-article-faq__eyebrow span { color: #9fc3c2; font-size: 9px; margin-left: 9px; }
.ws-site-presentation.single-post .main_content-is-post .ws-article-faq__head h2 {
  background: transparent !important; border: 0 !important; box-shadow: none !important; color: #fff !important;
  font-size: clamp(27px,4vw,40px); line-height: 1.35; margin: 0 0 12px !important; min-height: 0; padding: 0 !important;
}
.ws-site-presentation.single-post .main_content-is-post .ws-article-faq__head h2::before,
.ws-site-presentation.single-post .main_content-is-post .ws-article-faq__head h2::after { content: none !important; display: none !important; }
.ws-site-presentation .ws-article-faq__head > p:last-child { color: #c9d9dc; font-size: 13px; line-height: 1.8; margin: 0; }
.ws-site-presentation .ws-article-faq__list { background: #f3f7f6; display: grid; gap: 15px; padding: clamp(18px,4vw,34px); }
.ws-site-presentation .ws-article-faq__item { background: #fff; border: 1px solid #d6e1df; border-radius: 18px; overflow: hidden; }
.ws-site-presentation .ws-article-faq__question { align-items: flex-start; display: grid; gap: 16px; grid-template-columns: 46px minmax(0,1fr); padding: 22px 24px 18px; }
.ws-site-presentation .ws-article-faq__mark {
  align-items: center; background: var(--ws-teal); border-radius: 13px; color: #fff; display: inline-flex; flex: 0 0 46px;
  font-family: Georgia,serif; font-size: 17px; font-weight: 700; height: 46px; justify-content: center; letter-spacing: -.03em;
}
.ws-site-presentation .ws-article-faq__tag {
  background: rgba(169,84,67,.1); border-radius: 999px; color: var(--ws-terracotta); display: inline-flex; font-size: 9px;
  font-weight: 900; letter-spacing: .08em; margin-bottom: 8px; padding: 4px 9px;
}
.ws-site-presentation .ws-article-faq__question h3 { border: 0; color: var(--ws-navy); font-size: 18px; line-height: 1.55; margin: 0; padding: 0; }
.ws-site-presentation .ws-article-faq__answer {
  background: #fbfaf6; border-top: 1px solid #e4e9e7; display: grid; gap: 16px; grid-template-columns: 46px minmax(0,1fr); padding: 20px 24px 22px;
}
.ws-site-presentation .ws-article-faq__answer-mark {
  align-items: center; border: 1px solid #b9d1ce; border-radius: 50%; color: var(--ws-teal); display: inline-flex; font-family: Georgia,serif;
  font-size: 18px; font-weight: 700; height: 38px; justify-content: center; margin: 2px 0 0 4px; width: 38px;
}
.ws-site-presentation .ws-article-faq__answer p { color: #344951; font-size: 14px; line-height: 1.9; margin: 0; }
.ws-site-presentation .ws-article-faq__proof { align-items: center; border-top: 1px dashed #cbd9d7; display: flex; font-size: 10px !important; gap: 9px; margin-top: 14px !important; padding-top: 13px; }
.ws-site-presentation .ws-article-faq__proof strong { background: var(--ws-navy); border-radius: 999px; color: #fff; font-size: 9px; letter-spacing: .08em; padding: 4px 8px; }

/* Decision-support dialogue */
.ws-site-presentation .ws-dialogue { display: grid; gap: 24px; margin: clamp(44px,7vw,76px) auto; max-width: 920px; }
.ws-site-presentation .ws-dialogue__turn { align-items: center; display: grid; gap: 18px; grid-template-columns: 92px minmax(0,1fr); }
.ws-site-presentation .ws-dialogue__turn--editor { grid-template-columns: minmax(0,1fr) 92px; }
.ws-site-presentation .ws-dialogue__turn--editor .ws-dialogue__speaker { grid-column: 2; grid-row: 1; }
.ws-site-presentation .ws-dialogue__speaker { align-items: center; color: var(--ws-navy); display: flex; flex-direction: column; gap: 7px; text-align: center; }
.ws-site-presentation .ws-dialogue__avatar {
  background-color: #fff; background-position: center; background-repeat: no-repeat; background-size: cover;
  border: 4px solid #f2d6cb; border-radius: 50%; box-shadow: 0 10px 26px rgba(18,48,71,.1);
  display: block; height: 76px; overflow: hidden; width: 76px;
}
.ws-site-presentation .ws-dialogue__turn--reader .ws-dialogue__avatar--initial { background-image: url("../images/mizuhiro-reader-avatar.webp"); color: transparent; font-size: 0; }
.ws-site-presentation .ws-dialogue__turn--editor .ws-dialogue__avatar { border-color: #bfded9; }
.ws-site-presentation .ws-dialogue__turn--editor .ws-dialogue__avatar--initial { background-image: url("../images/shirube-editor-avatar.webp"); color: transparent; font-size: 0; }
.ws-site-presentation .ws-dialogue__identity { display: grid; gap: 2px; justify-items: center; line-height: 1.25; }
.ws-site-presentation .ws-dialogue__identity strong { font-size: 12px; }
.ws-site-presentation .ws-dialogue__identity small { color: var(--ws-muted); font-size: 10px; font-weight: 700; }
.ws-site-presentation .ws-dialogue__bubble {
  background: #fff; border: 1px solid var(--ws-line); border-left: 5px solid var(--ws-terracotta); border-radius: 20px;
  box-shadow: 0 16px 38px rgba(18,48,71,.06); color: var(--ws-ink); font-size: 16px; font-weight: 700; line-height: 1.85; margin: 0; padding: 24px 28px;
}
.ws-site-presentation .ws-dialogue__turn--editor .ws-dialogue__bubble { border-left: 1px solid var(--ws-line); border-right: 5px solid var(--ws-teal); grid-column: 1; grid-row: 1; }

/* Front page */
.ws-front { background: var(--ws-paper); overflow: hidden; }
.ws-front-eyebrow { color: var(--ws-terracotta); font-size: 11px; font-weight: 900; letter-spacing: .11em; margin: 0 0 10px; }
.ws-front-hero { align-items: center; display: grid; gap: clamp(36px,6vw,78px); grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr); margin: 0 auto; max-width: 1200px; padding: clamp(62px,9vw,110px) 28px 76px; }
.ws-front-hero h1 { color: var(--ws-navy); font-family: "Zen Kaku Gothic New","Noto Sans JP","Yu Gothic",sans-serif; font-size: clamp(42px,6vw,70px); line-height: 1.22; margin: 0; }
.ws-front-hero h1 em { color: var(--ws-teal); font-style: normal; }
.ws-front-hero__lead { color: #495860; font-size: clamp(16px,2vw,19px); font-weight: 600; line-height: 1.85; margin: 25px 0 0; max-width: 650px; }
.ws-front-hero__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 22px; margin-top: 30px; }
.ws-front-button { border-radius: 12px; display: inline-flex; font-size: 13px; font-weight: 900; padding: 14px 20px; text-decoration: none; }
.ws-front-button--primary { background: var(--ws-teal); box-shadow: 0 10px 0 rgba(35,111,112,.14); color: #fff !important; }
.ws-front-button--primary:hover { background: var(--ws-teal-dark); transform: translateY(-1px); }
.ws-front-button--text { color: var(--ws-navy); padding-left: 0; padding-right: 0; text-decoration: underline; }
.ws-front-button.ws-link-unavailable { background: #dfe6e4; box-shadow: none; color: #6c787d !important; cursor: not-allowed; }
.ws-front-hero__facts { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 30px 0 0; padding: 0; }
.ws-front-hero__facts li { background: #fff; border: 1px solid var(--ws-line); border-radius: 999px; color: var(--ws-muted); font-size: 10px; font-weight: 700; padding: 6px 11px; }
.ws-front-hero__visual { border-radius: 28px; box-shadow: var(--ws-shadow); margin: 0; overflow: hidden; position: relative; }
.ws-front-hero__visual::before { background: linear-gradient(135deg,rgba(18,48,71,.14),transparent 45%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.ws-front-hero__visual img { aspect-ratio: 4/5; display: block; object-fit: cover; width: 100%; }
.ws-front-hero__visual figcaption { background: rgba(18,48,71,.82); bottom: 14px; color: #fff; font-size: 9px; left: 14px; padding: 5px 9px; position: absolute; z-index: 2; }
.ws-front-answer { background: #fff4cf; border: 1px solid var(--ws-gold); border-radius: 28px; box-shadow: var(--ws-shadow); display: grid; grid-template-columns: 150px minmax(0,1fr); margin: 0 auto; max-width: 1120px; overflow: hidden; }
.ws-front-answer__label { align-items: center; border-right: 1px solid var(--ws-gold); display: flex; flex-direction: column; padding: 48px 16px; text-align: center; }
.ws-front-answer__label span { color: var(--ws-terracotta); font-size: 11px; font-weight: 900; }
.ws-front-answer__label strong { color: var(--ws-navy); font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: 25px; font-weight: 500; line-height: 1.5; margin-top: 12px; }
.ws-front-answer__main { padding: clamp(34px,5vw,58px); }
.ws-front-answer h2 { color: var(--ws-navy); font-size: clamp(28px,4vw,43px); line-height: 1.35; margin: 0 0 20px; }
.ws-front-answer ol { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.ws-front-answer li { align-items: flex-start; display: flex; font-size: 14px; gap: 11px; }
.ws-front-answer li span { align-items: center; background: rgba(169,84,67,.12); border-radius: 50%; color: var(--ws-terracotta); display: inline-flex; flex: 0 0 24px; font-size: 11px; font-weight: 900; height: 24px; justify-content: center; }
.ws-front-section { margin: 0 auto; max-width: 1168px; padding: 118px 24px 92px; }
.ws-front-section__head { max-width: 780px; }
.ws-front-section__head h2, .ws-front-routes h2, .ws-front-editorial h2 { color: var(--ws-navy); font-size: clamp(30px,4vw,46px); line-height: 1.35; margin: 0 0 13px; }
.ws-front-section__head > p:last-child { color: var(--ws-muted); font-size: 14px; }
.ws-front-axis-grid { display: grid; gap: 14px; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 38px; }
.ws-front-axis-grid article { background: #fff; border: 1px solid var(--ws-line); border-radius: 20px; min-height: 235px; padding: 27px 24px; }
.ws-front-axis-grid article:nth-child(even) { background: var(--ws-sand); }
.ws-front-axis-grid span { color: var(--ws-terracotta); font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.ws-front-axis-grid h3 { color: var(--ws-navy); font-size: 25px; margin: 28px 0 8px; }
.ws-front-axis-grid p { color: #526168; font-size: 13px; line-height: 1.8; margin: 0; }
.ws-front-routes { background: linear-gradient(145deg,var(--ws-navy),var(--ws-navy-dark)); color: #fff; padding: 86px max(24px,calc((100vw - 1120px)/2)); }
.ws-front-section__head--light h2 { color: #fff; }
.ws-front-route-grid { display: grid; gap: 16px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 36px; }
.ws-front-route-grid article { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.17); border-radius: 20px; padding: 28px; }
.ws-front-route-grid article > span:first-child { color: #e9cb80; font-size: 10px; font-weight: 900; letter-spacing: .1em; }
.ws-front-route-grid h3 { color: #fff; font-size: 21px; margin: 13px 0 9px; }
.ws-front-route-grid p { color: #c5d4d9; font-size: 12px; line-height: 1.8; min-height: 66px; }
.ws-front-route-grid a { color: #fff; font-size: 12px; font-weight: 900; }
.ws-front-route-grid .ws-link-unavailable { color: #91a5ad; font-size: 11px; }
.ws-front-editorial { align-items: center; background: var(--ws-aqua); border-radius: 28px; display: grid; gap: 28px; grid-template-columns: 92px minmax(0,1fr); margin: 92px auto 110px; max-width: 1080px; padding: 38px 44px; }
.ws-front-editorial__mark { align-items: center; background: #fff; border-radius: 50%; color: var(--ws-teal); display: flex; font-size: 34px; height: 82px; justify-content: center; width: 82px; }
.ws-front-editorial h2 { font-size: clamp(25px,3vw,34px); }
.ws-front-editorial p:last-child { color: #4f5d63; font-size: 13px; line-height: 1.85; margin-bottom: 0; }

/* Dynamic CMS discovery */
.ws-front-discovery { align-items: stretch; background: #fff; border: 1px solid var(--ws-line); border-radius: 24px; box-shadow: 0 18px 46px rgba(18,48,71,.06); display: grid; gap: 0; grid-template-columns: 190px minmax(0,1fr); margin: 34px auto 0; max-width: 1120px; overflow: hidden; }
.ws-front-discovery__count { align-content: center; background: var(--ws-navy); color: #fff; display: grid; justify-items: center; padding: 28px 18px; text-align: center; }
.ws-front-discovery__count span { color: #9fc7c4; font-size: 8px; font-weight: 900; letter-spacing: .18em; }
.ws-front-discovery__count strong { color: #fff; font-family: Georgia,"Yu Mincho",serif; font-size: 47px; font-weight: 500; line-height: 1; margin: 8px 0 5px; }
.ws-front-discovery__count small { color: #d5e1e3; font-size: 10px; font-weight: 800; }
.ws-front-search { align-items: center; display: grid; gap: 28px; grid-template-columns: minmax(220px,.8fr) minmax(360px,1.2fr); padding: 28px 32px; }
.ws-front-search label { color: var(--ws-navy); display: block; font-size: 17px; font-weight: 900; }
.ws-front-search p { color: var(--ws-muted); font-size: 10px; line-height: 1.65; margin: 7px 0 0; }
.ws-front-search__input { display: grid; grid-template-columns: minmax(0,1fr) auto; }
.ws-front-search input { background: #f7f9f8; border: 1px solid #bacbc8; border-radius: 12px 0 0 12px; color: var(--ws-ink); font: inherit; font-size: 13px; min-width: 0; padding: 14px 16px; }
.ws-front-search input:focus { border-color: var(--ws-teal); box-shadow: 0 0 0 3px rgba(35,111,112,.12); outline: 0; position: relative; z-index: 1; }
.ws-front-search button { background: var(--ws-teal); border: 0; border-radius: 0 12px 12px 0; color: #fff; cursor: pointer; font-size: 12px; font-weight: 900; padding: 0 20px; }
.ws-front-search button:hover { background: var(--ws-teal-dark); }
.ws-front-library { padding: 98px 24px; }
.ws-front-library--popular { background: linear-gradient(180deg,#f5f1e8 0%,#f9f7f1 100%); margin-top: 96px; }
.ws-front-library--latest { background: #fff; }
.ws-front-library__inner { margin: 0 auto; max-width: 1168px; }
.ws-front-library__head { align-items: end; display: flex; gap: 42px; justify-content: space-between; margin-bottom: 36px; }
.ws-front-library__head h2 { color: var(--ws-navy); font-size: clamp(30px,4vw,46px); line-height: 1.35; margin: 0; }
.ws-front-library__head > p { color: var(--ws-muted); font-size: 11px; line-height: 1.8; margin: 0 0 7px; max-width: 390px; }
.ws-front-post-grid { display: grid; gap: 18px; }
.ws-front-post-grid--popular { grid-template-columns: repeat(4,minmax(0,1fr)); }
.ws-front-post-grid--latest { grid-template-columns: repeat(3,minmax(0,1fr)); }
.ws-front-post-card { background: #fff; border: 1px solid var(--ws-line); border-radius: 19px; box-shadow: 0 14px 36px rgba(18,48,71,.05); display: flex; flex-direction: column; min-width: 0; overflow: hidden; transition: box-shadow .2s ease,transform .2s ease; }
.ws-front-post-card:hover { box-shadow: 0 20px 44px rgba(18,48,71,.1); transform: translateY(-3px); }
.ws-front-post-card__visual { background: #dce9e6; display: block; overflow: hidden; text-decoration: none; }
.ws-front-post-card__image { aspect-ratio: 16/10; display: block; height: auto; object-fit: cover; transition: transform .3s ease; width: 100%; }
.ws-front-post-card:hover .ws-front-post-card__image { transform: scale(1.025); }
.ws-front-post-card__placeholder { align-items: center; aspect-ratio: 16/10; background: linear-gradient(145deg,#d9ece8,#edf5f2); color: var(--ws-teal); display: flex; font-size: 46px; justify-content: center; }
.ws-front-post-card__body { display: flex; flex: 1; flex-direction: column; padding: 20px 20px 22px; }
.ws-front-post-card__meta { align-items: center; color: var(--ws-muted); display: flex; font-size: 9px; font-weight: 800; gap: 9px; letter-spacing: .04em; }
.ws-front-post-card__badge { background: rgba(35,111,112,.1); border-radius: 999px; color: var(--ws-teal-dark); font-size: 8px; font-weight: 900; letter-spacing: .12em; padding: 4px 7px; }
.ws-front-post-card--latest .ws-front-post-card__badge { background: rgba(169,84,67,.1); color: var(--ws-terracotta); }
.ws-front-post-card h3 { font-size: 18px; line-height: 1.55; margin: 14px 0 10px; }
.ws-front-post-card h3 a { color: var(--ws-navy); text-decoration: none; }
.ws-front-post-card h3 a:hover { color: var(--ws-teal-dark); }
.ws-front-post-card__body > p { color: #59676d; font-size: 11px; line-height: 1.8; margin: 0 0 20px; }
.ws-front-post-card__more { color: var(--ws-teal-dark); font-size: 10px; font-weight: 900; margin-top: auto; text-decoration: none; }
.ws-front-post-card__more span { margin-left: 4px; }

/* Replacement footer; unavailable destinations remain plain text until publication. */
.ws-site-presentation .l-footer_top,
.ws-site-presentation .l-footer_middle,
.ws-site-presentation .l-copyright,
.ws-site-presentation .l-footer_menu { display: none !important; }
.ws-site-footer { background: radial-gradient(circle at 10% 0%,rgba(66,145,140,.22),transparent 28rem),linear-gradient(145deg,#102c40 0%,#0e2536 58%,#0b202f 100%); border-top: 6px solid var(--ws-teal); color: #fff; }
.ws-site-footer__inner { margin: 0 auto; max-width: 1180px; padding: 64px 30px 24px; }
.ws-site-footer__main { display: grid; gap: clamp(50px,7vw,92px); grid-template-columns: minmax(250px,.82fr) minmax(0,2.18fr); }
.ws-site-footer__brand { align-items: center; color: #fff; display: flex; gap: 14px; text-decoration: none; }
.ws-site-footer__mark { align-items: center; background: var(--ws-sand); border-radius: 50%; color: var(--ws-teal); display: flex; flex: 0 0 48px; font-size: 27px; height: 48px; justify-content: center; width: 48px; }
.ws-site-footer__brand strong, .ws-site-footer__brand small { display: block; }
.ws-site-footer__brand strong { font-size: 16px; line-height: 1.4; }
.ws-site-footer__brand small { color: #bcd1d7; font-size: 10px; font-weight: 700; margin-top: 3px; }
.ws-site-footer__lead > p { color: #c5d4d9; font-size: 13px; line-height: 1.9; margin: 24px 0 22px; }
.ws-site-footer__start { align-items: center; background: var(--ws-sand); border-radius: 999px; color: var(--ws-navy); display: inline-flex; font-size: 12px; font-weight: 900; padding: 12px 18px; text-decoration: none; }
.ws-site-footer__start:hover { background: #fff; transform: translateY(-2px); }
.ws-site-footer__start.ws-link-unavailable { background: rgba(245,241,232,.14); color: #9eb1b8; cursor: not-allowed; }
.ws-site-footer__nav { display: grid; gap: 34px 28px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.ws-site-footer__nav section { align-content: start; display: grid; gap: 11px; }
.ws-site-footer__nav strong { color: #fff; font-size: 12px; letter-spacing: .08em; margin-bottom: 4px; }
.ws-site-footer__nav a, .ws-site-footer__nav .ws-link-unavailable { color: #bcd1d7; font-size: 11px; line-height: 1.55; text-decoration: none; }
.ws-site-footer__nav a:hover { color: #fff; text-decoration: underline; text-decoration-color: #62aaa5; text-underline-offset: 5px; }
.ws-site-footer__nav .ws-link-unavailable { cursor: not-allowed; opacity: .62; }
.ws-site-footer__promise { border-bottom: 1px solid rgba(188,209,215,.18); border-top: 1px solid rgba(188,209,215,.18); display: grid; gap: 14px 38px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 52px; padding: 22px 0; }
.ws-site-footer__promise p { align-items: center; color: #d7e4e7; display: flex; font-size: 11px; gap: 9px; margin: 0; }
.ws-site-footer__promise span { align-items: center; background: rgba(98,170,165,.18); border: 1px solid rgba(98,170,165,.48); border-radius: 50%; color: #9ed1cd; display: inline-flex; flex: 0 0 22px; height: 22px; justify-content: center; width: 22px; }
.ws-site-footer__bottom { align-items: start; display: flex; gap: 30px; justify-content: space-between; padding-top: 22px; }
.ws-site-footer__bottom p { color: #93aab2; font-size: 10px; line-height: 1.7; margin: 0; }
.ws-site-footer__bottom p:last-child { max-width: 480px; text-align: right; }

@media (max-width: 980px) {
  .ws-site-footer__main { grid-template-columns: 1fr; }
  .ws-site-footer__lead { max-width: 520px; }
  .ws-site-footer__nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ws-front-hero { grid-template-columns: 1fr; }
  .ws-front-hero__visual { max-height: 520px; }
  .ws-front-hero__visual img { aspect-ratio: 16/8; }
  .ws-front-axis-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ws-front-post-grid--popular, .ws-front-post-grid--latest { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ws-front-search { grid-template-columns: 1fr; }
  .ws-site-presentation.single-post.ws-article-hero-enhanced .l-keyvisual_post .keyvisual__text_area__inner { grid-template-columns: 1fr; }
  .ws-site-presentation.single-post.ws-article-hero-enhanced .ws-article-featured { max-width: 720px; }
}
@media (max-width: 782px) { .admin-bar .ws-site-header { top: 46px; } }
@media (max-width: 700px) {
  body.ws-site-presentation { font-size: 16px; }
  .ws-site-header__inner { height: 68px; padding: 0 16px; }
  .ws-site-brand__mark { flex-basis: 38px; height: 38px; width: 38px; }
  .ws-site-brand__copy strong { font-size: 13px; }
  .ws-site-brand__copy small { font-size: 7px; }
  .ws-site-nav a:not(:first-child), .ws-site-nav .ws-link-unavailable { display: none; }
  .ws-site-presentation.single-post .l-keyvisual_post { padding: 38px 0 42px; }
  .ws-site-presentation.single-post .l-keyvisual_post .keyvisual__text_area__inner { align-items: start; gap: 22px; grid-template-columns: 1fr; }
  .ws-site-presentation.single-post .l-keyvisual_post h1 { font-size: 30px; }
  .ws-site-presentation.single-post .l-keyvisual_post .date_list { margin-left: 0; margin-top: 18px; }
  .ws-site-presentation.single-post .main_content-is-post { padding: 48px 0 80px; width: calc(100% - 36px); }
  .ws-site-presentation.single-post .main_content-is-post > .ws-pr-disclosure + p { font-size: 17px; }
  .ws-site-presentation.single-post .main_content-is-post > h2 { font-size: 26px; margin-top: 62px; padding-left: 16px; }
  .ws-site-presentation.single-post .main_content-is-post > h3 { font-size: 20px; }
  .ws-site-presentation.single-post .main_content-is-post > blockquote.wp-block-quote:first-of-type { font-size: 16px; padding: 22px 20px; }
  .ws-site-presentation .ws-dialogue { gap: 18px; margin: 46px auto; }
  .ws-site-presentation .ws-dialogue__turn, .ws-site-presentation .ws-dialogue__turn--editor { align-items: start; gap: 10px; grid-template-columns: 62px minmax(0,1fr); }
  .ws-site-presentation .ws-dialogue__turn--editor { grid-template-columns: minmax(0,1fr) 62px; }
  .ws-site-presentation .ws-dialogue__avatar { border-width: 3px; height: 54px; width: 54px; }
  .ws-site-presentation .ws-dialogue__identity strong { font-size: 10px; }
  .ws-site-presentation .ws-dialogue__identity small { font-size: 8px; }
  .ws-site-presentation .ws-dialogue__bubble { border-radius: 16px; font-size: 14px; line-height: 1.75; padding: 17px 18px; }
  .ws-front-hero { padding: 54px 18px 52px; }
  .ws-front-hero h1 { font-size: 39px; }
  .ws-front-hero__visual img { aspect-ratio: 16/10; }
  .ws-front-answer { border-left: 0; border-radius: 0; border-right: 0; display: block; }
  .ws-front-answer__label { align-items: baseline; border-bottom: 1px solid var(--ws-gold); border-right: 0; flex-direction: row; gap: 12px; padding: 13px 20px; }
  .ws-front-answer__label strong { font-family: inherit; font-size: 13px; font-weight: 900; margin: 0; }
  .ws-front-answer__main { padding: 30px 20px 34px; }
  .ws-front-section { padding: 84px 18px 70px; }
  .ws-front-axis-grid, .ws-front-route-grid { grid-template-columns: 1fr; }
  .ws-front-axis-grid article { min-height: 0; }
  .ws-front-routes { padding: 68px 18px; }
  .ws-front-editorial { border-radius: 0; grid-template-columns: 62px minmax(0,1fr); margin: 70px 0 80px; padding: 30px 20px; }
  .ws-front-editorial__mark { font-size: 24px; height: 58px; width: 58px; }
  .ws-front-discovery { border-radius: 0; grid-template-columns: 1fr; margin-top: 22px; }
  .ws-front-discovery__count { grid-template-columns: auto auto auto; justify-content: center; padding: 18px; }
  .ws-front-discovery__count strong { font-size: 32px; margin: 0 8px; }
  .ws-front-search { gap: 18px; padding: 24px 18px 28px; }
  .ws-front-search__input { grid-template-columns: 1fr; }
  .ws-front-search input, .ws-front-search button { border-radius: 11px; }
  .ws-front-search button { margin-top: 8px; padding: 13px 18px; }
  .ws-front-library { padding: 72px 18px; }
  .ws-front-library--popular { margin-top: 70px; }
  .ws-front-library__head { align-items: start; display: grid; gap: 14px; margin-bottom: 28px; }
  .ws-front-post-grid--popular, .ws-front-post-grid--latest { grid-template-columns: 1fr; }
  .ws-front-post-card { display: grid; grid-template-columns: 118px minmax(0,1fr); }
  .ws-front-post-card__image, .ws-front-post-card__placeholder { aspect-ratio: auto; height: 100%; min-height: 170px; }
  .ws-front-post-card__body { padding: 17px 16px 18px; }
  .ws-front-post-card h3 { font-size: 15px; margin: 10px 0 8px; }
  .ws-front-post-card__body > p { display: none; }
  .ws-site-footer__inner { padding: 48px 20px 22px; }
  .ws-site-footer__nav { gap: 34px 24px; }
  .ws-site-footer__promise { grid-template-columns: 1fr; margin-top: 42px; }
  .ws-site-footer__bottom { display: grid; gap: 9px; }
  .ws-site-footer__bottom p:last-child { text-align: left; }
  .ws-foundation-page { padding-bottom: 70px; }
  .ws-foundation-page h2 { margin-top: 52px; padding-left: 16px; }
  .ws-foundation-page ul, .ws-foundation-page ol { padding: 19px 20px 19px 40px; }
  .ws-contact-form { border-radius: 16px; }
  .ws-site-presentation .ws-article-faq { border-radius: 20px; margin: 58px -4px 42px; }
  .ws-site-presentation .ws-article-faq__head { padding: 27px 21px 25px; }
  .ws-site-presentation.single-post .main_content-is-post .ws-article-faq__head h2 { font-size: 26px; }
  .ws-site-presentation .ws-article-faq__list { gap: 12px; padding: 13px; }
  .ws-site-presentation .ws-article-faq__question,
  .ws-site-presentation .ws-article-faq__answer { gap: 11px; grid-template-columns: 39px minmax(0,1fr); padding: 18px 16px; }
  .ws-site-presentation .ws-article-faq__mark { border-radius: 11px; font-size: 14px; height: 39px; width: 39px; }
  .ws-site-presentation .ws-article-faq__answer-mark { height: 34px; margin-left: 2px; width: 34px; }
  .ws-site-presentation .ws-article-faq__question h3 { font-size: 16px; }
  .ws-site-presentation .ws-article-faq__answer p { font-size: 13px; line-height: 1.85; }
}
@media (max-width: 390px) { .ws-site-footer__nav { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
