/* 選ビンGO! Core 1.6.4 — route service + Core-managed trust/legal pages */

:root {
  --erabingo-primary: #175E63;
  --erabingo-primary-dark: #0F484C;
  --erabingo-bg: #F7F8F4;
  --erabingo-mint: #E8F3F1;
  --erabingo-coral: #E98563;
  --erabingo-coral-soft: #FFF2EC;
  --erabingo-ink: #18343A;
  --erabingo-muted: #53676A;
  --erabingo-white: #FFFFFF;
  --erabingo-line: #CDDCD8;
  --erabingo-focus: #0F6D73;
  --erabingo-radius: 18px;
  --erabingo-shadow: 0 10px 28px rgba(24, 52, 58, .08);
}

/* Core pages are full-width content pages. No theme sidebar/recent-post widgets. */

.erabingo-managed-page {
  background: var(--erabingo-bg);
  color: var(--erabingo-ink);
}

.erabingo-managed-page #secondary,
.erabingo-managed-page .sidebar,
.erabingo-managed-page .widget-area,
.erabingo-managed-page .l-sidebar,
.erabingo-managed-page .c-widgetArea,
.erabingo-managed-page .p-sidebar,
.erabingo-managed-page .wp-block-latest-posts,
.erabingo-managed-page .widget {
  display: none !important;
}

.erabingo-managed-page #primary,
.erabingo-managed-page .content-area,
.erabingo-managed-page .l-mainContent,
.erabingo-managed-page .p-mainContent,
.erabingo-managed-page .c-entry,
.erabingo-managed-page .post_content,
.erabingo-managed-page .entry-content,
.erabingo-managed-page .l-article,
.erabingo-managed-page article.page,
.erabingo-managed-page .single-wrap,
.erabingo-managed-page .main,
.erabingo-managed-page .contents {
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 100% !important;
}

.erabingo-managed-page .c-pageTitle,
.erabingo-managed-page .entry-title,
.erabingo-managed-page .page-title,
.erabingo-managed-page h1.entry-title,
.erabingo-managed-page .p-pageTitle {
  display: none !important;
}

.erabingo-core,
.erabingo-front-gateway {
  box-sizing: border-box;
  color: var(--erabingo-ink);
  font-size: 16px;
  line-height: 1.72;
}

.erabingo-core {
  max-width: 1040px;
  margin: 0 auto;
  padding: clamp(.35rem, 1vw, .8rem);
  background: var(--erabingo-bg);
}

.erabingo-core *, .erabingo-core *::before, .erabingo-core *::after,
.erabingo-front-gateway *, .erabingo-front-gateway *::before, .erabingo-front-gateway *::after {
  box-sizing: border-box;
}

.erabingo-core h1, .erabingo-core h2, .erabingo-core h3 {
  margin-top: 0;
  color: var(--erabingo-ink);
  letter-spacing: .005em;
}

/*
 * Theme isolation: SWELL and other themes may paint H2/H3 with their own dark bars.
 * Core owns its headings, so remove theme decoration inside Core/front gateway.
 */

body .erabingo-core h1, body .erabingo-core h2, body .erabingo-core h3,
body .erabingo-front-gateway h1, body .erabingo-front-gateway h2, body .erabingo-front-gateway h3 {
  position: static !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 0 !important;
  border-bottom: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

body .erabingo-core h1::before, body .erabingo-core h1::after,
body .erabingo-core h2::before, body .erabingo-core h2::after,
body .erabingo-core h3::before, body .erabingo-core h3::after,
body .erabingo-front-gateway h1::before, body .erabingo-front-gateway h1::after,
body .erabingo-front-gateway h2::before, body .erabingo-front-gateway h2::after,
body .erabingo-front-gateway h3::before, body .erabingo-front-gateway h3::after {
  display: none !important;
  content: none !important;
}

body .erabingo-front-gateway h1, body .erabingo-front-gateway h2, body .erabingo-front-gateway h3 {
  color: var(--erabingo-ink) !important;
}

body .erabingo-hero h1, body .erabingo-hero h2, body .erabingo-hero h3 {
  color: #fff !important;
}

.erabingo-core h1 {
  margin-bottom: .65rem;
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1.18;
}

.erabingo-core h2 {
  margin-bottom: .45rem;
  font-size: clamp(1.35rem, 3vw, 1.8rem);
  line-height: 1.35;
}

.erabingo-core h3 {
  margin-bottom: .2rem;
  font-size: 1.03rem;
  line-height: 1.45;
}

.erabingo-core p {
  margin: 0;
}

.erabingo-core a {
  color: var(--erabingo-primary);
  text-underline-offset: .16em;
}

.erabingo-core a:focus-visible,
.erabingo-front-gateway a:focus-visible,
.erabingo-front-gateway button:focus-visible,
.erabingo-front-gateway select:focus-visible {
  outline: 3px solid var(--erabingo-focus);
  outline-offset: 3px;
}

/* Home-page gateway: start route selection directly on the front page. */

.erabingo-front-gateway {
  max-width: 1040px;
  margin: 0 auto 2rem;
  padding: clamp(.35rem, 1vw, .8rem);
  background: var(--erabingo-bg);
}

.erabingo-front-fallback {
  position: fixed;
  right: 14px;
  bottom: 14px;
  left: 14px;
  z-index: 9999;
  display: flex;
  justify-content: center;
  pointer-events: none;
}

.erabingo-front-fallback a {
  pointer-events: auto;
  display: flex;
  width: min(100%,520px);
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .8rem 1.1rem;
  border-radius: 999px;
  background: var(--erabingo-primary);
  color: #fff !important;
  box-shadow: var(--erabingo-shadow);
  font-weight: 900;
  text-decoration: none !important;
}

/* Brand and language. */

.erabingo-brandbar {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: 1rem;
  color: var(--erabingo-muted);
  font-size: .9rem;
}

.erabingo-brand {
  color: var(--erabingo-primary) !important;
  font-weight: 900;
  text-decoration: none;
}

.erabingo-brand-sep {
  color: #91A5A2;
}

.erabingo-language {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 0 0 1rem;
  padding: .3rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 999px;
  background: #fff;
}

.erabingo-language-link {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: .4rem .78rem;
  border-radius: 999px;
  color: var(--erabingo-muted) !important;
  font-size: .88rem;
  font-weight: 750;
  text-decoration: none !important;
}

.erabingo-language-link:hover {
  background: var(--erabingo-mint);
  color: var(--erabingo-ink) !important;
}

.erabingo-language-link.is-current {
  background: var(--erabingo-primary);
  color: #fff !important;
}

.erabingo-back {
  margin: 0 0 .9rem !important;
}

.erabingo-back a {
  color: var(--erabingo-muted) !important;
  font-weight: 750;
  text-decoration: none;
}

/* Hero: deep teal = trust. White text is high-contrast. */

.erabingo-hero {
  margin: 0 0 1.6rem;
  padding: clamp(1.35rem,4vw,2.45rem);
  border-radius: 24px;
  background: linear-gradient(145deg,var(--erabingo-primary) 0%,var(--erabingo-primary-dark) 100%);
  color: #fff;
  box-shadow: var(--erabingo-shadow);
}

.erabingo-hero h1, .erabingo-hero h2, .erabingo-hero h3, .erabingo-hero p, .erabingo-hero small, .erabingo-hero strong {
  color: #fff;
}

.erabingo-eyebrow {
  margin-bottom: .45rem !important;
  color: var(--erabingo-primary) !important;
  font-size: .8rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .92;
}

.erabingo-hero .erabingo-eyebrow {
  color: #fff !important;
  opacity: .9;
}

.erabingo-title-en {
  margin: -.2rem 0 .85rem !important;
  font-size: clamp(.84rem,1.8vw,.98rem);
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: .02em;
  opacity: .82;
}

.erabingo-hero .erabingo-title-en {
  color: #fff !important;
}

.erabingo-search-scope {
  margin-top: 1rem;
  padding: .8rem .9rem;
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 14px;
  background: rgba(255,255,255,.10);
}

.erabingo-search-scope-mark {
  flex: 0 0 1.35rem;
  width: 1.35rem;
  height: 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: .05rem;
  border-radius: 999px;
  background: rgba(255,255,255,.2);
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
}

.erabingo-search-scope p {
  margin: 0 !important;
  font-size: .88rem;
  line-height: 1.55;
}

.erabingo-search-scope strong {
  display: block;
  margin: 0 0 .12rem;
  font-size: .78rem;
  letter-spacing: .02em;
  opacity: .9;
}

.erabingo-search-scope span:not(.erabingo-search-scope-mark) {
  display: block;
}

.erabingo-lead {
  width: 100%;
  max-width: none;
  font-size: clamp(1rem,2.4vw,1.16rem);
  opacity: .96;
}

.erabingo-route-summary {
  display: grid;
  grid-template-columns: max-content max-content max-content;
  justify-content: center;
  align-items: end;
  column-gap: clamp(.65rem,2.2vw,1.2rem);
  margin-top: 1.35rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255,255,255,.25);
}

.erabingo-route-summary > span:not(.erabingo-route-arrow) {
  display: flex;
  flex-direction: column;
  gap: .1rem;
  min-width: 0;
}

.erabingo-route-summary > span:first-child,
.erabingo-route-summary > span:last-child {
  align-items: flex-start;
  text-align: left;
}

.erabingo-route-summary small {
  font-size: .76rem;
  font-weight: 750;
  opacity: .78;
}

.erabingo-route-summary strong {
  font-size: clamp(1.25rem,3vw,1.65rem);
  white-space: nowrap;
}

.erabingo-route-arrow {
  align-self: end;
  padding-bottom: .12rem;
  font-size: 1.5rem;
  font-weight: 900;
  line-height: 1.2;
}

/* One-thumb route picker. */

.erabingo-route-picker {
  margin: 1.2rem 0 2rem;
  padding: clamp(1rem,3.5vw,1.45rem);
  border: 1px solid var(--erabingo-line);
  border-radius: 20px;
  background: var(--erabingo-mint);
}

.erabingo-route-picker.is-front {
  margin: .7rem 0 0;
}

.erabingo-picker-head {
  margin-bottom: 1rem;
}

.erabingo-picker-head h2 {
  margin: 0 0 .35rem !important;
  color: var(--erabingo-ink) !important;
  font-size: clamp(1.25rem,3.2vw,1.55rem);
}

.erabingo-picker-head p {
  color: var(--erabingo-muted);
  font-size: .94rem;
}

.erabingo-route-picker form {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.2fr) auto;
  gap: .8rem;
  align-items: end;
}

.erabingo-picker-field {
  min-width: 0;
}

.erabingo-picker-field label {
  display: flex;
  flex-direction: column;
  gap: .38rem;
  color: var(--erabingo-ink);
  font-size: .83rem;
  font-weight: 850;
}

.erabingo-picker-field select {
  width: 100%;
  min-width: 0;
  min-height: 58px;
  padding: .75rem .9rem;
  border: 2px solid #B7CECA;
  border-radius: 14px;
  background: #fff;
  color: var(--erabingo-ink);
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

.erabingo-picker-field select:disabled {
  background: #EEF1ED;
  color: #75827F;
}

.erabingo-picker-submit {
  min-height: 58px;
  min-width: 168px;
  padding: .8rem 1.05rem;
  border: 0;
  border-radius: 14px;
  background: var(--erabingo-primary);
  color: #fff;
  font: inherit;
  font-size: .98rem;
  font-weight: 900;
  cursor: pointer;
}

.erabingo-picker-submit:hover {
  background: var(--erabingo-primary-dark);
}

.erabingo-picker-submit:disabled {
  opacity: .48;
  cursor: not-allowed;
}

.erabingo-picker-scope {
  display: flex;
  gap: .42rem;
  align-items: flex-start;
  margin: .8rem 0 0;
  padding: .68rem .8rem;
  border: 1px solid #B7CECA;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
  color: var(--erabingo-muted);
  font-size: .84rem;
  line-height: 1.55;
}

.erabingo-picker-scope[hidden] {
  display: none;
}

.erabingo-picker-scope strong {
  flex: 0 0 auto;
  color: var(--erabingo-ink);
}

/* Route list and general sections. */

.erabingo-section {
  margin: 2.35rem 0;
}

.erabingo-section-head {
  margin-bottom: 1rem;
}

.erabingo-section-head > p {
  width: 100%;
  max-width: none;
  margin-top: .42rem;
  color: var(--erabingo-muted);
}

.erabingo-section-kicker {
  margin-bottom: .28rem !important;
  color: var(--erabingo-primary) !important;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .05em;
}

.erabingo-route-groups {
  display: grid;
  gap: 1.2rem;
}

.erabingo-route-group {
  min-width: 0;
}

.erabingo-route-group-title {
  margin: 0 0 .55rem !important;
  color: var(--erabingo-ink) !important;
  font-size: .96rem !important;
  font-weight: 900 !important;
  letter-spacing: .01em;
}

.erabingo-route-list {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
}

.erabingo-route-list > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-route-row {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 15px;
  background: #fff;
  color: var(--erabingo-ink) !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(24,52,58,.035);
}

.erabingo-route-row:hover {
  border-color: var(--erabingo-primary);
}

.erabingo-route-row > span:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.erabingo-route-row small {
  color: var(--erabingo-muted);
  font-size: .73rem;
  font-weight: 750;
}

.erabingo-route-row strong {
  font-size: 1.04rem;
}

.erabingo-row-fare {
  margin-top: .15rem;
  color: var(--erabingo-coral);
  font-size: .9rem;
  font-style: normal;
  font-weight: 900;
}

.erabingo-row-arrow {
  flex: 0 0 auto;
  color: var(--erabingo-primary);
  font-size: 1.6rem;
}

/* Price comes first. Coral is an accent with dark text, never white text on coral. */

.erabingo-price-first {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 1rem;
  margin: 0 0 2.4rem;
  padding: clamp(1.15rem,3vw,1.6rem);
  border: 1px solid #E8C2B3;
  border-left: 7px solid var(--erabingo-coral);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--erabingo-shadow);
}

.erabingo-price-first h2 {
  margin-bottom: .7rem;
}

.erabingo-price-first-copy {
  width: 100%;
  min-width: 0;
}

.erabingo-price-affiliate-cta {
  width: 100%;
}

.erabingo-fare-snapshot {
  position: relative;
  padding: 1rem;
  border-radius: 15px;
  background: var(--erabingo-coral-soft);
}

.erabingo-fare-main {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem 1rem;
}

.erabingo-fare-label {
  color: var(--erabingo-muted);
  font-size: .86rem;
  font-weight: 800;
}

.erabingo-fare-price {
  color: #B84D2D;
  font-size: clamp(2rem,6vw,3rem);
  line-height: 1;
  letter-spacing: -.025em;
}

.erabingo-fare-freshness {
  display: inline-flex;
  margin-top: .65rem;
  padding: .22rem .55rem;
  border-radius: 999px;
  background: var(--erabingo-mint);
  color: var(--erabingo-primary);
  font-size: .75rem;
  font-weight: 850;
}

.erabingo-fare-snapshot.is-aging .erabingo-fare-freshness {
  background: #FFF0D8;
  color: #7A5310;
}

.erabingo-fare-meta {
  margin-top: .6rem !important;
  color: var(--erabingo-ink);
  font-size: .88rem;
  font-weight: 750;
}

.erabingo-fare-note {
  margin-top: .35rem !important;
  color: var(--erabingo-muted);
  font-size: .82rem;
}

.erabingo-fare-source {
  margin-top: .45rem !important;
  font-size: .82rem;
  font-weight: 800;
}

.erabingo-price-empty {
  margin: .75rem 0 !important;
  padding: .9rem 1rem;
  border-radius: 13px;
  background: var(--erabingo-coral-soft);
  color: var(--erabingo-ink);
  font-weight: 750;
}

.erabingo-price-cta-label {
  margin-top: .8rem !important;
  color: var(--erabingo-primary);
  font-weight: 850;
}

/* Affiliate source is kept textually intact; wrapper provides context without rewriting link text. */

.erabingo-affiliate {
  align-self: end;
  padding: 1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 15px;
  background: var(--erabingo-mint);
}

.erabingo-affiliate-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .75rem;
}

.erabingo-ad-label {
  color: var(--erabingo-muted);
  font-size: .72rem;
  font-weight: 750;
}

.erabingo-affiliate-provider {
  color: var(--erabingo-ink);
  font-size: 1.03rem;
  font-weight: 900;
}

.erabingo-external {
  color: var(--erabingo-primary);
  font-size: 1.2rem;
}

.erabingo-affiliate-link {
  padding: .7rem .75rem;
  border-radius: 11px;
  background: #fff;
}

.erabingo-affiliate-link a {
  color: var(--erabingo-primary) !important;
  font-weight: 800;
}

.erabingo-link-hint {
  margin-top: .45rem !important;
  color: var(--erabingo-muted);
  font-size: .78rem;
  text-align: center;
}

/* Audience-priority knowledge: the core VRIO content asset. */

.erabingo-priority-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .8rem;
}

.erabingo-priority-card {
  display: flex;
  gap: .75rem;
  min-height: 128px;
  padding: 1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 16px;
  background: var(--erabingo-mint);
}

.erabingo-priority-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-priority-dot {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  margin-top: .48rem;
  border-radius: 50%;
  background: var(--erabingo-primary);
}

.erabingo-priority-card p {
  color: var(--erabingo-muted);
  font-size: .93rem;
}

/* Women-traveler information: practical, neutral, not stereotyped. */

.erabingo-women-guide {
  padding: clamp(1rem,3vw,1.4rem);
  border: 1px solid #EAC5B7;
  border-radius: 20px;
  background: var(--erabingo-coral-soft);
}

.erabingo-women-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
}

.erabingo-women-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-women-card {
  display: flex;
  gap: .7rem;
  padding: 1rem;
  border: 1px solid #E9D5CD;
  border-radius: 15px;
  background: #fff;
}

.erabingo-women-mark {
  flex: 0 0 auto;
  display: inline-flex;
  width: 27px;
  height: 27px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--erabingo-coral);
  color: var(--erabingo-ink);
  font-size: .82rem;
  font-weight: 950;
}

.erabingo-women-card p {
  color: var(--erabingo-muted);
  font-size: .91rem;
}

/* General checklist, steps and older information cards. */

.erabingo-check-grid, .erabingo-info-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .8rem;
}

.erabingo-info-grid > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-check-item, .erabingo-info-card, .erabingo-step {
  padding: 1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 15px;
  background: #fff;
}

.erabingo-check-item {
  display: flex;
  gap: .75rem;
}

.erabingo-check-item:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-check-icon, .erabingo-step-num {
  flex: 0 0 auto;
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--erabingo-primary);
  color: #fff;
  font-size: .83rem;
  font-weight: 900;
}

.erabingo-check-item p, .erabingo-info-card p, .erabingo-step p {
  color: var(--erabingo-muted);
  font-size: .92rem;
}

.erabingo-step-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: .8rem;
}

.erabingo-step {
  display: flex;
  gap: .75rem;
  background: var(--erabingo-mint);
}

/* Booking, tips and source transparency. */

.erabingo-booking {
  padding: clamp(1.1rem,3vw,1.5rem);
  border: 1px solid var(--erabingo-line);
  border-radius: 20px;
  background: var(--erabingo-mint);
}

.erabingo-freshness {
  display: flex;
  gap: .7rem;
  margin: 1rem 0;
  padding: .85rem .95rem;
  border-radius: 12px;
  background: #fff;
  color: var(--erabingo-muted);
  font-size: .9rem;
}

.erabingo-freshness > span {
  color: var(--erabingo-primary);
  font-weight: 900;
}

.erabingo-tip {
  display: flex;
  gap: .9rem;
  padding: 1.1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 16px;
  background: #fff;
}

.erabingo-tip-mark {
  flex: 0 0 auto;
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--erabingo-primary);
  border-radius: 50%;
  color: var(--erabingo-primary);
  font-family: Georgia,serif;
  font-weight: 700;
}

.erabingo-tip p {
  color: var(--erabingo-muted);
}

.erabingo-mini-route-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .65rem;
}

.erabingo-mini-route-grid a {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem .9rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 12px;
  background: #fff;
  color: var(--erabingo-ink) !important;
  font-weight: 750;
  text-decoration: none !important;
}

.erabingo-mini-route-grid a:hover {
  border-color: var(--erabingo-primary);
}

.erabingo-note {
  margin: 2.6rem 0 0;
  padding: 1rem 1.1rem;
  border-top: 1px solid var(--erabingo-line);
  color: var(--erabingo-muted);
  font-size: .84rem;
}

.erabingo-note-link {
  margin-top: .45rem !important;
}

.erabingo-primary-link {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin-top: 1.1rem;
  padding: .7rem 1.05rem;
  border-radius: 13px;
  background: #fff;
  color: var(--erabingo-primary) !important;
  font-weight: 900;
  text-decoration: none !important;
}

@media (max-width: 760px) {
  .erabingo-core {
    padding: .15rem;
    font-size: 15.5px;
  }

  .erabingo-route-picker form {
    grid-template-columns: 1fr;
    gap: .7rem;
  }

  .erabingo-picker-field select, .erabingo-picker-submit {
    width: 100%;
    min-height: 58px;
  }

  .erabingo-picker-submit {
    min-width: 0;
    font-size: 1rem;
  }

  .erabingo-picker-scope {
    flex-direction: column;
    gap: .18rem;
  }

  .erabingo-route-list, .erabingo-priority-grid, .erabingo-check-grid, .erabingo-info-grid, .erabingo-step-grid, .erabingo-mini-route-grid, .erabingo-women-grid {
    grid-template-columns: 1fr;
  }

  .erabingo-priority-card:last-child:nth-child(odd), .erabingo-check-item:last-child:nth-child(odd), .erabingo-route-list > :last-child:nth-child(odd), .erabingo-women-card:last-child:nth-child(odd), .erabingo-info-grid > :last-child:nth-child(odd) {
    grid-column: auto;
  }

  .erabingo-price-first {
    grid-template-columns: 1fr;
  }

  .erabingo-language {
    width: 100%;
    border-radius: 14px;
  }

  .erabingo-language-link {
    flex: 1 1 auto;
    min-height: 46px;
  }

  .erabingo-brand-context, .erabingo-brand-sep {
    display: none;
  }

  .erabingo-route-row {
    min-height: 70px;
  }

  .erabingo-women-guide {
    padding: 1rem;
  }
}

@media (max-width: 420px) {
  .erabingo-front-gateway, .erabingo-hero, .erabingo-price-first {
    border-radius: 17px;
  }

  .erabingo-hero {
    padding: 1.15rem;
  }

  .erabingo-route-summary {
    column-gap: .55rem;
  }

  .erabingo-route-summary strong {
    font-size: 1.08rem;
  }

  .erabingo-fare-price {
    font-size: 2.3rem;
  }

  .erabingo-affiliate {
    padding: .85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/*
 * 1.5.16 — Rakuten affiliate HTML compliance.
 * Visual CTA framing belongs to the outer Erabingo wrapper. The issued affiliate <a>
 * keeps its generated attributes; external styling of the link itself is limited to text styling.
 */

.erabingo-price-affiliate-cta {
  margin-top: .9rem;
}

/* 1.5.26 — booking search scope now belongs beside the booking CTA, not in the hero. */
.erabingo-search-scope-price {
  margin-top: .75rem;
  padding: .72rem .8rem;
  border: 1px solid var(--erabingo-line);
  background: var(--erabingo-mint);
  color: var(--erabingo-ink);
}

.erabingo-search-scope-price .erabingo-search-scope-mark {
  background: var(--erabingo-primary);
  color: var(--erabingo-white);
}

.erabingo-search-scope-price strong {
  color: var(--erabingo-primary-dark);
  opacity: 1;
}

/* 1.8.9 — warm CTA treatment distinguishes booking actions from mint information panels. */
.erabingo-price-affiliate-link,
.erabingo-affiliate-link {
  display: flex;
  width: 100%;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  padding: .9rem 1rem;
  border: 2px solid #D9744E;
  border-radius: 14px;
  background: #FFE9D9;
  text-align: center;
  box-shadow: 0 6px 18px rgba(185,83,52,.20);
  transition: background .16s ease, box-shadow .16s ease;
}

.erabingo-price-affiliate-link:hover,
.erabingo-affiliate-link:hover {
  background: #FFE1CB;
  box-shadow: 0 8px 20px rgba(185,83,52,.25);
}

.erabingo-price-affiliate-link:focus-within,
.erabingo-affiliate-link:focus-within {
  outline: 3px solid #E98563;
  outline-offset: 3px;
}

.erabingo-price-affiliate-link a,
.erabingo-affiliate-link a {
  color: #175E63 !important;
  font-weight: 800 !important;
  font-size: 1.1rem !important;
}

.erabingo-price-affiliate-disclosure {
  margin-top: .4rem !important;
  color: var(--erabingo-muted) !important;
  font-size: .75rem;
  text-align: center;
}

@media (max-width:420px) {
  .erabingo-price-affiliate-link,
  .erabingo-affiliate-link {
    min-height: 60px;
    padding: .85rem .75rem;
  }

  .erabingo-price-affiliate-link a,
  .erabingo-affiliate-link a {
    font-size: .95rem !important;
  }
}

/* Reusable route playbook grid */

.erabingo-playbook {
  padding: clamp(1rem, 3vw, 1.45rem);
  border: 1px solid #c7ded9;
  border-radius: 20px;
  background: #f7f8f4;
}

.erabingo-playbook-group + .erabingo-playbook-group {
  margin-top: 1.25rem;
}

.erabingo-playbook-group-title {
  margin: 0 0 .7rem !important;
  color: #18343a !important;
  font-size: 1.05rem !important;
  font-weight: 900;
}

.erabingo-playbook-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .75rem;
}

.erabingo-playbook-card {
  min-width: 0;
  padding: 1rem;
  border: 1px solid #cfe1dd;
  border-radius: 16px;
  background: #e8f3f1;
}

.erabingo-playbook-card h4 {
  margin: .38rem 0 .35rem !important;
  color: #18343a !important;
  font-size: 1rem !important;
  line-height: 1.45;
}

.erabingo-playbook-card p {
  color: #314d51 !important;
  font-size: .92rem;
  line-height: 1.7;
}

.erabingo-playbook-tag {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  padding: .12rem .55rem;
  border-radius: 999px;
  background: #175e63;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}

.erabingo-playbook-note {
  margin-top: 1rem !important;
  padding: .8rem .9rem;
  border-left: 4px solid #e98563;
  border-radius: 10px;
  background: #fff2eb;
  color: #18343a !important;
  font-size: .9rem;
}

@media (max-width: 820px) {
  .erabingo-playbook-grid {
    grid-template-columns: 1fr;
  }

  .erabingo-playbook-card {
    padding: .9rem;
  }
}

.erabingo-price-variable-note {
  margin-top: .55rem !important;
  color: #5a6f72 !important;
  font-size: .8rem;
  line-height: 1.55;
  text-align: center;
}

/* 1.1.0 — external destination hint and trust footer */

.erabingo-price-affiliate-screen-hint,
.erabingo-link-hint {
  margin-top: .55rem !important;
  color: #4f5f61 !important;
  font-size: .82rem !important;
  line-height: 1.55 !important;
  text-align: center !important;
}

.erabingo-price-affiliate-disclosure {
  margin-top: .18rem !important;
}

.erabingo-trust-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem .55rem;
  margin: 1rem 0 0;
  padding: 1rem 0 .2rem;
  border-top: 1px solid var(--erabingo-line);
  color: var(--erabingo-muted);
  font-size: .82rem;
  line-height: 1.6;
}

.erabingo-trust-footer a {
  color: #175E63 !important;
  font-weight: 700;
  text-decoration: none !important;
}

.erabingo-trust-footer a:hover {
  text-decoration: underline !important;
}

@media (max-width: 420px) {
  .erabingo-price-affiliate-screen-hint,
  .erabingo-link-hint {
    font-size: .79rem !important;
  }

  .erabingo-trust-footer {
    gap: .3rem .45rem;
    font-size: .78rem;
  }
}

/* 1.2.0 — Core owns the main column; SWELL remains header/footer only. */

.erabingo-managed-template .l-content,
.erabingo-managed-template #content,
.erabingo-managed-template .site-content,
.erabingo-managed-template .l-container,
.erabingo-managed-template .l-mainContent,
.erabingo-managed-template #primary,
.erabingo-managed-template .content-area {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  float: none !important;
  flex: none !important;
  grid-template-columns: 1fr !important;
}

#body_wrap.erabingo-managed-template #content.l-content,
#body_wrap.erabingo-managed-template .l-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*
 * 1.5.14 — SWELL inserts #post_slider between the header and #content.
 * On Core-managed pages the custom route UI owns this area, so suppress the
 * theme post slider and its reserved vertical space.
 */

#body_wrap.erabingo-managed-template > #post_slider,
#body_wrap.erabingo-managed-template > .p-postSlider {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

.erabingo-managed-template .l-sidebar,
.erabingo-managed-template #secondary,
.erabingo-managed-template .sidebar,
.erabingo-managed-template .widget-area,
.erabingo-managed-template .p-sidebar {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.erabingo-plugin-shell {
  display: block;
  width: 100%;
  margin: 0;
  padding: 1rem clamp(.75rem, 2.4vw, 1.5rem) 2.5rem;
  background: var(--erabingo-bg);
}

.erabingo-plugin-shell__inner {
  width: min(100%, 1080px);
  margin-inline: auto;
}

.erabingo-plugin-shell .erabingo-core {
  width: 100%;
  max-width: 1040px;
  margin-inline: auto;
}

/* The theme footer is the single site-information footer on Core pages. */

.erabingo-managed-template .erabingo-trust-footer {
  display: none !important;
}

@media (max-width: 720px) {
  .erabingo-plugin-shell {
    padding: .75rem .55rem 2rem;
  }
}

.erabingo-plugin-shell,
.erabingo-plugin-shell * {
  box-sizing: border-box;
}

/* 1.3.0: official sources are language-specific, title-linked, and split by departure/arrival. */

.erabingo-source-list {
  display: grid;
  gap: .65rem;
}

.erabingo-source-item {
  padding: .85rem .95rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 14px;
  background: #fff;
}

.erabingo-source-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.erabingo-source-row h3 {
  margin: 0 !important;
  font-size: .98rem !important;
  line-height: 1.5;
  color: var(--erabingo-ink) !important;
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
}

.erabingo-source-langs {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .35rem;
  flex: 0 0 auto;
}

.erabingo-source-lang {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: .2rem .5rem;
  border: 1px solid rgba(23,94,99,.22);
  border-radius: 999px;
  background: var(--erabingo-mint);
  color: var(--erabingo-primary) !important;
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none !important;
}

.erabingo-source-lang:hover {
  border-color: var(--erabingo-primary);
  background: #dceeea;
}

.erabingo-source-reviewed {
  margin-top: .28rem !important;
  color: var(--erabingo-muted) !important;
  font-size: .75rem;
}

@media (max-width:720px) {
  .erabingo-source-row {
    flex-direction: column;
    gap: .45rem;
  }

  .erabingo-source-langs {
    justify-content: flex-start;
  }
}

/* 1.3.0 source groups */

.erabingo-source-groups {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
  align-items: start;
}

.erabingo-source-group {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 18px;
  background: var(--erabingo-mint);
}

.erabingo-source-group-title {
  margin: 0 0 .75rem !important;
  padding: 0 0 .55rem !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(23,94,99,.2) !important;
  background: none !important;
  color: var(--erabingo-ink) !important;
  font-size: 1.05rem !important;
}

.erabingo-source-group .erabingo-source-item {
  background: #fff;
}

.erabingo-source-title-link {
  color: var(--erabingo-primary) !important;
  font-weight: 800;
  text-decoration: underline !important;
  text-underline-offset: .15em;
}

.erabingo-source-title-link:hover {
  color: #104b4f !important;
}

.erabingo-source-language {
  color: var(--erabingo-muted);
  font-size: .74rem;
  font-weight: 700;
  white-space: nowrap;
}

@media (max-width:720px) {
  .erabingo-source-groups {
    grid-template-columns: 1fr;
  }
}

/* 1.4.0 — babies & children knowledge cards */

.erabingo-family-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
}

.erabingo-family-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-family-card {
  display: flex;
  gap: .7rem;
  padding: 1rem;
  border: 1px solid #CFE5DE;
  border-radius: 15px;
  background: #F8FCFA;
}

.erabingo-family-card h3 {
  margin: 0 0 .2rem !important;
}

.erabingo-family-card p {
  color: var(--erabingo-muted);
  font-size: .91rem;
}

.erabingo-family-mark {
  flex: 0 0 auto;
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #E8F3F1;
  color: #175E63;
  font-size: .65rem;
  line-height: 1;
  margin-top: .1rem;
}

@media (max-width:720px) {
  .erabingo-family-grid {
    grid-template-columns: 1fr;
  }

  .erabingo-family-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
}

.erabingo-source-description {
  margin-top: .3rem !important;
  color: var(--erabingo-ink) !important;
  font-size: .86rem;
  line-height: 1.55;
}

/* 1.5.0 source governance */

.erabingo-source-freshness {
  display: inline-flex;
  align-items: center;
  margin-left: .45rem;
  padding: .12rem .45rem;
  border-radius: 999px;
  background: #FFF1EC;
  color: #A84327;
  font-size: .7rem;
  font-weight: 800;
  vertical-align: middle;
}

/* 1.5.4 — Rakuten Points benefit: visible, but intentionally quieter than the booking CTA. */

.erabingo-rakuten-points {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  width: fit-content;
  margin: 0 0 .55rem !important;
  padding: .34rem .66rem;
  border: 1px solid #d8cdbf;
  border-radius: 999px;
  background: #fffaf2;
  color: #684d34 !important;
  font-size: .84rem !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
}

.erabingo-rakuten-points span {
  color: #E98563;
  font-size: .62rem;
}

.erabingo-price-affiliate-cta .erabingo-rakuten-points {
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 420px) {
  .erabingo-rakuten-points {
    font-size: .8rem !important;
    padding: .32rem .58rem;
  }
}

/*
 * 1.5.14 — SWELL attaches body_class() to #body_wrap, not the <body> element.
 * Scope Core shell overrides by the class itself so they work whether the class
 * lives on body (other themes) or #body_wrap (SWELL). This also removes SWELL's
 * native .l-content top padding on Core-managed pages.
 */

.erabingo-managed-template #sp_menu,
.erabingo-managed-template .p-spMenu {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* 1.5.20 — quick internal link to the reverse direction of each route. */

.erabingo-reverse-route {
  margin-top: .9rem;
  padding: .72rem .82rem;
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 14px;
  background: rgba(255,255,255,.10);
}

.erabingo-reverse-route-mark {
  flex: 0 0 1.35rem;
  width: 1.35rem;
  height: 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: .08rem;
  border-radius: 999px;
  background: rgba(255,255,255,.2);
  color: #fff;
  font-size: .86rem;
  font-weight: 900;
}

.erabingo-reverse-route p {
  margin: 0 !important;
  line-height: 1.48;
}

.erabingo-reverse-route p > span {
  display: block;
  font-size: .78rem;
  opacity: .9;
}

.erabingo-reverse-route a {
  display: inline-block;
  margin-top: .08rem;
  color: #fff !important;
  font-weight: 850;
  text-decoration: underline !important;
  text-underline-offset: .18em;
}

.erabingo-reverse-route a:hover {
  text-decoration-thickness: 2px !important;
}


/* 1.6.0: Core-managed trust / legal static pages. */
.erabingo-static-page {
  padding-top: clamp(1rem, 2.5vw, 2rem);
  padding-bottom: .25rem;
}

.erabingo-static-head,
.erabingo-static-section,
.erabingo-contact-form,
.erabingo-static-callout {
  width: 100%;
  max-width: 860px;
  margin-right: auto;
  margin-left: auto;
}

.erabingo-static-head {
  margin-bottom: 1.35rem;
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid var(--erabingo-line);
  border-radius: var(--erabingo-radius);
  background: var(--erabingo-white);
  box-shadow: var(--erabingo-shadow);
}

.erabingo-static-back {
  margin-bottom: .85rem !important;
}

.erabingo-static-back a {
  color: var(--erabingo-muted) !important;
  font-weight: 750;
  text-decoration: none !important;
}

.erabingo-static-page .erabingo-static-head h1 {
  font-size: clamp(1.85rem, 4vw, 2.65rem);
}

.erabingo-static-lead {
  color: var(--erabingo-muted);
  font-size: 1.04rem;
}

.erabingo-static-sections {
  display: grid;
  gap: 1rem;
}

.erabingo-static-section {
  padding: clamp(1.15rem, 2.5vw, 1.7rem);
  border: 1px solid var(--erabingo-line);
  border-radius: 14px;
  background: var(--erabingo-white);
}

.erabingo-static-section h2 {
  margin-bottom: .7rem !important;
  font-size: clamp(1.2rem, 2.8vw, 1.5rem);
}

.erabingo-static-copy p + p,
.erabingo-static-copy p + ul,
.erabingo-static-copy ul + p {
  margin-top: .75rem;
}

.erabingo-static-copy ul {
  margin: .65rem 0 0;
  padding-left: 1.35rem;
}

.erabingo-static-copy li + li {
  margin-top: .35rem;
}

.erabingo-contact-form {
  margin-top: 1rem;
  padding: clamp(1.15rem, 2.5vw, 1.7rem);
  border: 1px solid var(--erabingo-line);
  border-radius: 14px;
  background: var(--erabingo-white);
}

/* 1.6.1: keep Contact Form 7 controls aligned with the Core form card. */
.erabingo-contact-form .wpcf7,
.erabingo-contact-form .wpcf7 form,
.erabingo-contact-form .wpcf7-form p,
.erabingo-contact-form .wpcf7-form-control-wrap {
  width: 100%;
  max-width: none;
}

.erabingo-contact-form .wpcf7 input[type="text"],
.erabingo-contact-form .wpcf7 input[type="email"],
.erabingo-contact-form .wpcf7 input[type="tel"],
.erabingo-contact-form .wpcf7 input[type="url"],
.erabingo-contact-form .wpcf7 input[type="search"],
.erabingo-contact-form .wpcf7 select,
.erabingo-contact-form .wpcf7 textarea {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

.erabingo-contact-form .wpcf7 textarea {
  resize: vertical;
}

.erabingo-static-callout {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--erabingo-line);
  border-radius: 12px;
  background: var(--erabingo-coral-soft);
}

.erabingo-static-dates {
  max-width: 860px;
  margin: 1rem auto 0 !important;
  color: var(--erabingo-muted);
  font-size: .88rem;
}

/* 1.6.4: all Core-managed pages end close to the site footer; avoid a large empty band. */
.erabingo-managed-template .erabingo-plugin-shell {
  padding-bottom: .5rem;
}

@media (max-width: 720px) {
  .erabingo-managed-template .erabingo-plugin-shell {
    padding-bottom: .35rem;
  }
}

/* 1.6.4: remove SWELL's residual content-bottom / before-footer spacing on every Core-managed page. */
.erabingo-managed-template #content,
.erabingo-managed-template .l-content,
.erabingo-managed-template .site-content {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.erabingo-managed-template #before_footer_widget,
.erabingo-managed-template .w-beforeFooter {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.erabingo-managed-template #before_footer_widget > *,
.erabingo-managed-template #before_footer_widget .l-container,
.erabingo-managed-template #before_footer_widget .w-beforeFooter__inner,
.erabingo-managed-template #before_footer_widget .widget {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.erabingo-managed-template #footer,
.erabingo-managed-template .l-footer {
  margin-top: 0 !important;
}


/* 1.8.2 — international visitor guidance. Optional, variable-length, easy/en only. */
.erabingo-international-guide {
  padding: clamp(1rem,3vw,1.4rem);
  border: 1px solid #C8DCE7;
  border-radius: 20px;
  background: #F7FBFD;
}

.erabingo-international-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
}

.erabingo-international-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.erabingo-international-card {
  display: flex;
  gap: .7rem;
  padding: 1rem;
  border: 1px solid #D7E5EC;
  border-radius: 15px;
  background: #fff;
}

.erabingo-international-card h3 {
  margin: 0 0 .2rem !important;
}

.erabingo-international-card p {
  color: var(--erabingo-muted);
  font-size: .91rem;
}

.erabingo-international-mark {
  flex: 0 0 auto;
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #E6F1F6;
  color: #175E63;
  font-size: .75rem;
  font-weight: 900;
  line-height: 1;
  margin-top: .1rem;
}

@media (max-width:720px) {
  .erabingo-international-grid {
    grid-template-columns: 1fr;
  }
  .erabingo-international-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
}

/* 1.8.8: On English Core pages, use Core's English trust/legal navigation
   as the single visible legal navigation and hide SWELL's duplicate Japanese nav.
   The global Core-page rule above keeps this nav hidden for Japanese/easy-Japanese. */
.erabingo-managed-template.erabingo-lang-en .erabingo-trust-footer {
  display: flex !important;
}

.erabingo-lang-en #footer .l-footer__nav {
  display: none !important;
}
