/*
  Boat Ticket pages - HOBO-YA
  Multiple ferry companies / responsive comparison & booking UI
*/

.bt-page,
.bt-page * { box-sizing: border-box; }
.bt-page { color:#253445; line-height:1.75; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; }
.bt-page a { overflow-wrap:anywhere; }

.bt-hero { margin:20px 12px 24px; padding:30px clamp(18px,4vw,44px); border:1px solid #d7e4ec; border-radius:18px; background:linear-gradient(135deg,#f4fbff 0%,#fff 58%,#f4f8ff 100%); box-shadow:0 10px 30px rgba(25,55,80,.08); }
.bt-eyebrow { margin:0 0 6px; color:#087aa8; font-weight:800; letter-spacing:.08em; font-size:.86rem; }
.bt-title { margin:0; color:#173a57; font-size:clamp(1.72rem,4.5vw,2.55rem); line-height:1.35; }
.bt-lead { max-width:820px; margin:16px 0 0; font-size:1.05rem; }
.bt-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:22px; }
.bt-feature { min-height:115px; padding:16px; border:1px solid #dbe8ef; border-radius:12px; background:#fff; }
.bt-feature strong { display:block; margin-bottom:6px; color:#0a698e; font-size:1.05rem; }
.bt-feature span { display:block; font-size:.94rem; line-height:1.65; }
.bt-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.bt-button,.bt-mini-button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none!important; font-weight:800; border-radius:999px; transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }
.bt-button { min-height:46px; padding:10px 22px; }
.bt-button:hover,.bt-mini-button:hover { transform:translateY(-1px); }
.bt-button--primary { background:#ef6d2f; color:#fff!important; box-shadow:0 6px 15px rgba(239,109,47,.24); }
.bt-button--primary:hover { background:#d8581e; }
.bt-button--secondary { color:#136a8f!important; background:#fff; border:1px solid #8ab9ce; }
.bt-mini-button { padding:8px 16px; color:#fff!important; background:#19779e; font-size:.9rem; white-space:nowrap; }

.bt-alert { margin:0 12px 24px; padding:15px 18px; border:1px solid #f1c36b; border-left:5px solid #e99b20; border-radius:10px; background:#fff8e8; }
.bt-alert strong { display:block; margin-bottom:3px; color:#8b4d00; }

.bt-section { margin:0 12px 28px; }
.bt-section-title { margin:0 0 14px; padding-bottom:8px; color:#173a57; border-bottom:3px solid #7bc1df; font-size:clamp(1.3rem,3.5vw,1.75rem); line-height:1.4; }
.bt-section-intro { margin:0 0 14px; color:#566776; }
.bt-section-head-row { display:flex; gap:14px; align-items:flex-end; justify-content:space-between; margin-bottom:12px; }
.bt-section-head-row .bt-section-title { margin-bottom:6px; }
.bt-highlight { padding:18px; border:1px solid #d9e5eb; border-radius:14px; background:#f8fcfe; }
.bt-highlight p { margin-top:0; }
.bt-key-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; list-style:none; margin:16px 0 0; padding:0; }
.bt-key-list li { padding:13px; border-radius:10px; background:#fff; border:1px solid #e0e8ed; text-align:center; }
.bt-key-list strong { color:#176c90; }
.bt-note { margin:10px 0 0; font-size:.92rem; color:#566776; }

.bt-company-grid,.bt-card-grid,.bt-package-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.bt-company-card,.bt-card,.bt-package-card { padding:18px; background:#fff; border:1px solid #dde6eb; border-radius:13px; box-shadow:0 4px 16px rgba(40,70,90,.05); }
.bt-company-card h3,.bt-card h3,.bt-package-card h4 { margin:8px 0 5px; color:#173a57; }
.bt-company-card p,.bt-card p,.bt-package-card p { margin:0; }
.bt-company-badge { display:inline-block; padding:3px 8px; border-radius:999px; font-weight:800; font-size:.74rem; line-height:1.5; white-space:nowrap; }
.bt-company-badge--lomprayah { color:#1f4f87; background:#e8f1ff; border:1px solid #bfd3ee; }
.bt-company-badge--boonsiri { color:#a42b2b; background:#fff0f0; border:1px solid #efc0c0; }

/* Project Seven Omni Panel overrides */
.bt-opm { margin-top:12px; border:1px solid #d6e2e9; background:#fff; }
.bt-opm .opm-tabs-wrapper { background:#eff7fb; }
.bt-opm .opm-tabs-wrapper li { min-width:180px; }
.bt-opm .opm-tabs-wrapper a { padding:15px 24px!important; font-weight:800!important; font-size:1.05rem!important; color:#2b536b!important; background:#eff7fb!important; border-right:1px solid #d6e2e9!important; }
.bt-opm .opm-tabs-wrapper a:hover,.bt-opm .opm-tabs-wrapper a.open { color:#fff!important; background:#17769d!important; }
.bt-opm .opm-accordion-trig a { padding:14px 16px!important; color:#fff!important; font-weight:800!important; background:#17769d!important; border-bottom:1px solid #fff!important; }
.bt-opm-content { padding:18px!important; }
.bt-direction-head { display:flex; justify-content:space-between; gap:10px; align-items:baseline; margin:0 0 10px; }
.bt-direction-head--return { margin-top:24px; }
.bt-direction-head h3 { margin:0; color:#173a57; font-size:1.2rem; }
.bt-direction-head span { color:#6b7882; font-size:.84rem; }

.bt-table-card { border:1px solid #dce5ea; border-radius:12px; overflow:hidden; background:#fff; }
.bt-table-scroll { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid #dce5ea; border-radius:12px; }
.bt-table { width:100%; border-collapse:collapse; background:#fff; }
.bt-table th,.bt-table td { padding:10px 9px; border-bottom:1px solid #e4eaee; text-align:left; vertical-align:middle; }
.bt-table th { color:#fff; background:#2f7899; font-size:.88rem; white-space:nowrap; }
.bt-table tbody tr:last-child td { border-bottom:0; }
.bt-table tbody tr:nth-child(even) { background:#f8fbfd; }
.bt-compare-table { min-width:720px; }
.bt-compare-table td:nth-child(3),.bt-compare-table td:nth-child(4),.bt-compare-table td:nth-child(5) { white-space:nowrap; }
.bt-price { color:#c3541d; font-weight:900; }
.bt-price::after { content:"B"; margin-left:1px; font-size:.78em; }
.bt-price-check { color:#9a5a00; font-weight:800; }
.bt-row-extra { background:#fff9ea!important; }
.bt-tag-new { display:inline-block; padding:2px 7px; border-radius:999px; background:#fff0c9; color:#8a5800; font-size:.76rem; font-weight:800; white-space:nowrap; }
.bt-schedule-notes { margin-top:14px; padding:14px 16px; background:#f5f8fa; border-radius:10px; color:#526370; font-size:.9rem; }
.bt-schedule-notes p { margin:4px 0; }

.bt-disclosure,.bt-form-details { margin-top:16px; border:1px solid #d8e4ea; border-radius:11px; background:#fff; overflow:hidden; }
.bt-disclosure summary,.bt-form-details summary { cursor:pointer; padding:13px 16px; color:#155d7c; font-weight:800; background:#f2f8fb; }
.bt-disclosure-body,.bt-form-details-body { padding:16px; }
.bt-source-period { margin-top:0; padding:9px 12px; background:#fff8e8; border-radius:8px; }
.bt-package-card { box-shadow:none; padding:14px; }
.bt-package-card h4 { font-size:.98rem; }
.bt-package-card p { font-size:.92rem; }
.bt-pier-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.bt-info-list { margin:0; padding-left:1.35em; }
.bt-info-list li { margin:6px 0; }
.bt-payment { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.bt-payment-item { padding:16px; border:1px solid #dbe5ea; border-radius:12px; background:#fff; }
.bt-payment-item strong { display:block; margin-bottom:5px; color:#176c90; }
.bt-cancel-label td { background:#eaf4f8!important; color:#214d63; font-weight:800; }
.bt-contact { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:20px; border-radius:14px; color:#fff; background:#245d79; }
.bt-contact h3,.bt-contact p { margin:0; }
.bt-contact a { color:#fff!important; }
.bt-bottom-cta { margin:28px 12px 22px; padding:26px 18px; text-align:center; border-radius:16px; background:linear-gradient(135deg,#eaf7fc,#f7fbff); border:1px solid #cfe4ed; }
.bt-bottom-cta h2 { margin:0 0 5px; color:#173a57; }
.bt-bottom-cta p { margin:0 0 15px; }

/* Booking form */
.bt-form-page { max-width:900px; margin:0 auto; padding:0 10px 24px; }
.bt-form-hero { margin:18px 0 16px; padding:24px clamp(16px,4vw,30px); border-radius:16px; background:#f1f9fc; border:1px solid #d3e7ee; }
.bt-form-hero h1 { margin:2px 0 8px; color:#173a57; font-size:clamp(1.55rem,4.4vw,2.1rem); line-height:1.4; }
.bt-form-hero p { margin:0; }
.bt-form-toplinks { margin-top:10px; font-size:.9rem; }
.bt-booking-form { margin:0; }
.bt-form-notice { margin:0 0 16px; padding:13px 15px; border:1px solid #f1c36b; border-left:5px solid #e99b20; border-radius:10px; background:#fff9ec; }
.bt-form-section { margin:0 0 15px; padding:16px; border:1px solid #d9e3e8; border-radius:13px; background:#fff; }
.bt-form-section legend { padding:0 8px; color:#173a57; font-weight:900; font-size:1.05rem; }
.bt-form-section legend span { display:inline-flex; width:27px; height:27px; align-items:center; justify-content:center; margin-right:6px; border-radius:50%; color:#fff; background:#1b789e; }
.bt-form-grid { display:grid; gap:13px; }
.bt-form-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.bt-form-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.bt-field--full { grid-column:1 / -1; }
.bt-field label,.bt-label { display:block; margin-bottom:6px; color:#2e4352; font-weight:800; }
.bt-field label em,.bt-label em { display:inline-block; margin-left:5px; padding:1px 6px; border-radius:999px; color:#a61717; background:#ffecec; font-style:normal; font-size:.68rem; vertical-align:middle; }
.bt-field input[type="text"],.bt-field input[type="email"],.bt-field input[type="tel"],.bt-field input[type="date"],.bt-field input[type="time"],.bt-field select,.bt-field textarea { width:100%!important; max-width:none!important; min-width:0!important; padding:11px 12px; border:1px solid #bfcdd5; border-radius:9px; background:#fff; color:#233542; font:inherit; line-height:1.4; }
.bt-field textarea { resize:vertical; min-height:130px; }
.bt-field input:focus,.bt-field select:focus,.bt-field textarea:focus { outline:3px solid rgba(36,137,180,.15); border-color:#2489b4; }
.bt-field-help,.bt-form-subnote { margin:6px 0 0; color:#647480; font-size:.84rem; line-height:1.55; }
.bt-choice-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.bt-choice-card { position:relative; margin:0!important; cursor:pointer; }
.bt-choice-card input { position:absolute; opacity:0; pointer-events:none; }
.bt-choice-card span { display:flex; flex-direction:column; padding:14px 16px; border:2px solid #d1dde3; border-radius:11px; background:#fff; transition:.16s ease; }
.bt-choice-card strong { color:#22465b; font-size:1.1rem; }
.bt-choice-card small { color:#6c7880; }
.bt-choice-card input:checked + span { border-color:#1b82ad; background:#edf8fc; box-shadow:0 0 0 3px rgba(27,130,173,.08); }
.bt-choice-card input:focus + span { outline:3px solid rgba(27,130,173,.2); }
.bt-form-details { margin:0 0 15px; }
.bt-form-policy { margin:0 0 16px; padding:16px; border:1px solid #d9e3e8; border-radius:13px; background:#f9fbfc; }
.bt-form-policy h2 { margin:0 0 5px; color:#173a57; font-size:1.1rem; }
.bt-form-policy p { margin:0 0 8px; }
.bt-form-policy details summary { cursor:pointer; font-weight:800; color:#176c90; }
.bt-form-policy .bt-table-card { margin-top:10px; }
.bt-form-submit { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:22px 0; }
.bt-submit-button,.bt-reset-button { min-height:48px; padding:10px 24px; border-radius:999px; font-weight:900; font-size:1rem; cursor:pointer; }
.bt-submit-button { border:0; color:#fff; background:#ef6d2f; box-shadow:0 6px 15px rgba(239,109,47,.24); }
.bt-reset-button { border:1px solid #b8c6ce; color:#465866; background:#fff; }
[hidden] { display:none!important; }

@media only screen and (max-width:760px){
  .bt-hero { margin:12px 8px 18px; padding:22px 16px; }
  .bt-section,.bt-alert,.bt-bottom-cta { margin-left:8px; margin-right:8px; }
  .bt-feature-grid,.bt-key-list,.bt-company-grid,.bt-card-grid,.bt-pier-grid,.bt-payment,.bt-package-grid { grid-template-columns:1fr; }
  .bt-feature { min-height:0; }
  .bt-section-head-row,.bt-contact { align-items:stretch; flex-direction:column; }
  .bt-mini-button { align-self:flex-start; }
  .bt-opm-content { padding:11px!important; }
  .bt-direction-head { display:block; }
  .bt-direction-head span { display:block; margin-top:2px; }
  .bt-table-scroll { overflow:visible; border:0; }
  .bt-compare-table { min-width:0; }
  .bt-compare-table thead { display:none; }
  .bt-compare-table,.bt-compare-table tbody,.bt-compare-table tr,.bt-compare-table td { display:block; width:100%; }
  .bt-compare-table tr { margin:0 0 10px; padding:10px 12px; border:1px solid #dce5ea; border-radius:10px; background:#fff!important; }
  .bt-compare-table td { display:grid; grid-template-columns:95px 1fr; gap:8px; padding:5px 0; border:0; }
  .bt-compare-table td::before { content:attr(data-label); color:#687680; font-size:.82rem; font-weight:700; }
  .bt-row-extra { border-color:#edcf88!important; background:#fffaf0!important; }
  .bt-cancel-table td { font-size:.9rem; }
  .bt-form-page { padding:0 8px 20px; }
  .bt-form-hero { margin-top:12px; }
  .bt-form-grid--2,.bt-form-grid--3,.bt-choice-cards { grid-template-columns:1fr; }
  .bt-form-section { padding:13px 12px; }
  .bt-field--full { grid-column:auto; }
  .bt-submit-button,.bt-reset-button { width:100%; }
}

@media only screen and (max-width:480px){
  .bt-actions { display:grid; grid-template-columns:1fr; }
  .bt-button { width:100%; }
  .bt-table:not(.bt-compare-table) thead { display:none; }
  .bt-cancel-table,.bt-cancel-table tbody,.bt-cancel-table tr,.bt-cancel-table td { display:block; width:100%; }
  .bt-cancel-table tr:not(.bt-cancel-label) { padding:8px 10px; border-bottom:1px solid #e2e8eb; }
  .bt-cancel-table tr:not(.bt-cancel-label) td { border:0; padding:4px 0; }
  .bt-cancel-table tr:not(.bt-cancel-label) td::before { content:attr(data-label) ": "; font-weight:700; color:#63717a; }
  .bt-cancel-label td { padding:8px 10px!important; }
}

/* 2026-08 readability refinements */
.bt-page {
  padding: 14px 0 28px;
  background: #f2f6f8;
  border-radius: 16px;
}
.bt-section {
  padding: 20px;
  border: 1px solid #dfe7eb;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(35,67,88,.045);
}
.bt-section-title {
  margin-left: -20px;
  margin-right: -20px;
  margin-top: -20px;
  padding: 12px 20px 10px;
  border-bottom: 1px solid #cfe1e9;
  border-radius: 15px 15px 0 0;
  background: linear-gradient(90deg,#e9f5fa 0%,#f7fbfd 100%);
}
.bt-company-card:first-child { border-top: 4px solid #5b89bd; }
.bt-company-card:last-child { border-top: 4px solid #d56c6c; }
.bt-opm { border-radius: 14px; overflow: hidden; box-shadow: 0 5px 18px rgba(35,67,88,.06); }
.bt-table th { background: #276f90; }
.bt-table tbody tr:nth-child(even) { background:#f5f9fb; }
.bt-row-boonsiri { background:#fff7f7 !important; }
.bt-row-boonsiri td:first-child { box-shadow: inset 3px 0 0 #df8585; }
.bt-schedule-notes { border-left:4px solid #78a9bd; background:#eef6f9; }
.bt-travel-note-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.bt-travel-note { padding:17px 18px; border-radius:13px; }
.bt-travel-note h3 { margin:0 0 6px; color:#173a57; font-size:1.05rem; }
.bt-travel-note p { margin:0; }
.bt-travel-note--airport { border:1px solid #e7c779; background:#fff8e7; }
.bt-travel-note--pier { border:1px solid #9ccddd; background:#eef9fc; }
.bt-pier-grid .bt-card { background:#f8fbfc; }
.bt-payment-item { background:#f8fbfc; }

@media only screen and (max-width:760px){
  .bt-page { padding-top:8px; border-radius:0; }
  .bt-section { margin-left:8px; margin-right:8px; padding:15px 12px; }
  .bt-section-title { margin-left:-12px; margin-right:-12px; margin-top:-15px; padding:11px 12px 9px; }
  .bt-travel-note-grid { grid-template-columns:1fr; }
  .bt-row-boonsiri td:first-child { box-shadow:none; }
}

/* 2026-08-13 visual hierarchy / timetable label refinements */
.bt-heading-icon {
  display:inline-flex;
  width:30px;
  height:30px;
  align-items:center;
  justify-content:center;
  margin-right:9px;
  border-radius:50%;
  color:#fff;
  background:#237da2;
  font-size:.82em;
  font-weight:900;
  line-height:1;
  vertical-align:middle;
  box-shadow:0 2px 6px rgba(26,85,111,.16);
}

/* Give each information block a subtle identity instead of a white-on-white page. */
.bt-section--condition { background:#fffaf0; border-color:#ead9ad; }
.bt-section--condition .bt-section-title { background:linear-gradient(90deg,#fff0c9,#fffaf0); border-bottom-color:#e7cc8d; }
.bt-section--condition .bt-heading-icon { background:#b7791f; }
.bt-section--condition .bt-highlight { background:#fffdf7; border-color:#eadfbe; }

.bt-section--company { background:#f4f9fd; border-color:#cfe0eb; }
.bt-section--company .bt-section-title { background:linear-gradient(90deg,#dff1f9,#f4f9fd); border-bottom-color:#bad8e7; }
.bt-section--company .bt-company-card { background:#fff; }

.bt-section--schedule { background:#f4f9fb; border-color:#cbdfe8; }
.bt-section--schedule .bt-section-title { background:linear-gradient(90deg,#dcedf5,#f4f9fb); border-bottom-color:#b8d5e2; }
.bt-section--schedule .bt-opm { background:#fff; }
.bt-direction-head {
  padding:10px 13px;
  border-left:5px solid #287da0;
  border-radius:8px;
  background:#eaf5fa;
}
.bt-direction-head--return { background:#edf7f1; border-left-color:#4b956d; }
.bt-direction-head--return h3 { color:#285d43; }
.bt-table-scroll { box-shadow:0 2px 8px rgba(37,76,96,.045); }
.bt-table th { background:#246f90; }
.bt-table td { background-clip:padding-box; }

.bt-section--travel { background:#fffaf0; border-color:#ead8aa; }
.bt-section--travel .bt-section-title { background:linear-gradient(90deg,#fff0c9,#fffaf0); border-bottom-color:#e6ca84; }
.bt-section--travel .bt-heading-icon { background:#c4821c; }

.bt-section--pier { background:#f2faf8; border-color:#cce4dd; }
.bt-section--pier .bt-section-title { background:linear-gradient(90deg,#dff2ed,#f2faf8); border-bottom-color:#bcdcd3; }
.bt-section--pier .bt-heading-icon { background:#3a8b75; }
.bt-section--pier .bt-card { background:#fff; border-top:4px solid #73b8a5; }

.bt-section--delay { background:#fff7f4; border-color:#efd8cf; }
.bt-section--delay .bt-section-title { background:linear-gradient(90deg,#fde7df,#fff7f4); border-bottom-color:#edc7b8; }
.bt-section--delay .bt-heading-icon { background:#c45f42; }
.bt-section--delay .bt-card { background:#fffdfc; border-left:4px solid #df8b72; }

.bt-section--guide { background:#f5faf3; border-color:#d4e6ce; }
.bt-section--guide .bt-section-title { background:linear-gradient(90deg,#e5f3df,#f5faf3); border-bottom-color:#c6dfbd; }
.bt-section--guide .bt-heading-icon { background:#5a9348; }
.bt-section--guide .bt-card { background:#fcfffb; }

.bt-section--payment { background:#f7f6fc; border-color:#ddd8ed; }
.bt-section--payment .bt-section-title { background:linear-gradient(90deg,#eae7f7,#f7f6fc); border-bottom-color:#d1cae7; }
.bt-section--payment .bt-heading-icon { background:#7464a7; }
.bt-section--payment .bt-payment-item { background:#fff; border-top:4px solid #9b8fc3; }

.bt-section--cancel { background:#f5f8fa; border-color:#d6e0e5; }
.bt-section--cancel .bt-section-title { background:linear-gradient(90deg,#e6eef2,#f5f8fa); border-bottom-color:#c9d8df; }
.bt-section--cancel .bt-heading-icon { background:#607b89; }

/* Same wording in both directions: this column always means the Samui-side pier. */
.bt-compare-table th:nth-child(2) { min-width:150px; }

@media only screen and (max-width:760px){
  .bt-heading-icon { width:27px; height:27px; margin-right:7px; }
  .bt-direction-head { padding:9px 10px; }
}

/* =========================================================
   2026-08 FINAL: SEO + sales hero / image layout refinements
   details.html upper sales section
   ========================================================= */

.bt-hero--sales {
  position: relative;
  overflow: hidden;
  padding: clamp(20px, 3vw, 34px);
  background: linear-gradient(135deg, #eef9fd 0%, #ffffff 54%, #fff6eb 100%);
  border-color: #c9e0ea;
}

.bt-hero--sales::before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  right: -90px;
  top: -95px;
  border-radius: 50%;
  background: rgba(63,164,201,.09);
  pointer-events: none;
}

.bt-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(300px, .78fr);
  gap: 26px;
  align-items: center;
}

.bt-hero-copy {
  min-width: 0;
}

.bt-hero--sales .bt-title span {
  color: #087aa8;
  font-size: .92em;
}

.bt-hero--sales .bt-lead {
  max-width: 660px;
  margin-top: 14px;
}

.bt-hero-support {
  margin: 12px 0 0;
  padding: 11px 13px;
  border-left: 4px solid #ef8a46;
  border-radius: 0 9px 9px 0;
  background: rgba(255,255,255,.76);
  color: #465968;
  font-size: .94rem;
}

.bt-trust-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 16px;
}

.bt-trust-chips span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid #c8dce6;
  border-radius: 999px;
  background: #fff;
  color: #28556a;
  font-size: .8rem;
  font-weight: 800;
}

.bt-trust-chips span::before {
  content: "✓";
  margin-right: 5px;
  color: #13835d;
  font-weight: 900;
}

.bt-hero-microcopy {
  margin: 9px 0 0;
  color: #61727f;
  font-size: .82rem;
}

/* Hero images:
   main image = landscape 4:3
   transfer image = landscape 3:2 + caption below */
.bt-hero-media {
  position: relative;
  width: min(100%, 370px);
  min-height: 290px;
  margin: 0 auto;
  padding: 0 20px 54px 0;
}

.bt-hero-photo {
  position: relative;
  overflow: hidden;
  margin: 0;
  border: 4px solid #fff;
  border-radius: 16px;
  background: #dbe9ef;
  box-shadow: 0 10px 26px rgba(24,63,84,.16);
}

.bt-hero-photo--main {
  width: min(260px, 78%);
  aspect-ratio: 4 / 3;
}

.bt-hero-photo--sub {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
  width: min(185px, 58%);
  background: #fff;
}

.bt-hero-photo img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.bt-hero-photo--main img {
  height: 100%;
  object-position: center center;
}

.bt-hero-photo-link {
  position: relative;
  display: block;
  width: 100%;
  color: #fff;
  text-decoration: none !important;
}

.bt-hero-photo-link:focus-visible {
  outline: 3px solid #087aa8;
  outline-offset: 3px;
  border-radius: 12px;
}

.bt-hero-photo--sub .bt-hero-photo-link > img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center center;
  transition: transform .25s ease;
}

.bt-hero-photo--sub .bt-hero-photo-link:hover > img {
  transform: scale(1.025);
}

.bt-hero-photo--sub figcaption {
  position: static;
  margin: 0;
  padding: 8px 8px 9px;
  background: #164f6b;
  color: #fff;
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
}

/* Who this service is for */
.bt-need-strip {
  margin: 0 12px 22px;
  padding: 18px;
  border: 1px solid #d8e4ea;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(35,67,88,.04);
}

.bt-need-strip > h2 {
  margin: 0 0 13px;
  color: #173a57;
  font-size: 1.18rem;
  text-align: center;
}

.bt-need-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}

.bt-need-card {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 13px;
  border: 1px solid #dfe9ee;
  border-radius: 11px;
}

.bt-need-card:nth-child(1) {
  background: #f4fbff;
}

.bt-need-card:nth-child(2) {
  background: #f7fafc;
}

.bt-need-card:nth-child(3) {
  background: #f4fbf8;
}

.bt-need-card h3 {
  margin: 0 0 3px;
  color: #20516a;
  font-size: .95rem;
  line-height: 1.45;
}

.bt-need-card p {
  margin: 0;
  color: #536773;
  font-size: .88rem;
  line-height: 1.6;
}

.bt-need-icon {
  flex: 0 0 34px;
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e3f3f9;
  color: #12769b;
  font-weight: 900;
  line-height: 1;
}

.bt-need-card:nth-child(2) .bt-need-icon {
  background: #e9f0f7;
  color: #3a708f;
}

.bt-need-card:nth-child(3) .bt-need-icon {
  background: #e6f5ee;
  color: #287a59;
}

.bt-need-icon--jp {
  font-size: .7rem;
  letter-spacing: -.02em;
}

/* Airport / hotel -> pier -> islands flow */
.bt-route-support {
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(330px,.92fr);
  gap: 22px;
  align-items: center;
  margin: 0 12px 24px;
  padding: 21px;
  border: 1px solid #cfe2ea;
  border-radius: 15px;
  background: linear-gradient(100deg, #eaf7fb, #f9fcfd);
}

.bt-route-kicker {
  margin: 0 0 2px;
  color: #087aa8;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.bt-route-support h2 {
  margin: 0 0 7px;
  color: #173a57;
  font-size: clamp(1.12rem,2.6vw,1.42rem);
  line-height: 1.45;
}

.bt-route-support-copy > p:last-child {
  margin: 0;
}

.bt-route-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 8px;
  align-items: center;
}

.bt-route-flow > div {
  min-height: 110px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 11px 8px;
  border: 1px solid #cbdde5;
  border-radius: 11px;
  background: #fff;
  text-align: center;
  box-shadow: 0 2px 8px rgba(32,77,99,.04);
}

.bt-route-flow strong {
  color: #234d62;
  font-size: .84rem;
  line-height: 1.45;
}

.bt-route-flow span {
  margin-top: 5px;
  color: #75838c;
  font-size: .72rem;
}

.bt-route-flow b {
  color: #2a83a6;
  font-size: 1.2rem;
}

/* Submit-button rendering fix */
.bt-submit-button {
  text-shadow: none !important;
  filter: none !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.25;
  letter-spacing: 0;
}

/* Responsive refinements for new upper section */
@media only screen and (max-width: 820px) {
  .bt-hero-grid {
    grid-template-columns: 1fr;
  }

  .bt-hero-media {
    width: min(100%, 390px);
    max-width: 390px;
    margin: 2px auto 0;
  }

  .bt-need-grid {
    grid-template-columns: 1fr;
  }

  .bt-route-support {
    grid-template-columns: 1fr;
  }
}

@media only screen and (max-width: 560px) {
  .bt-hero--sales {
    padding: 20px 14px;
  }

  .bt-hero-media {
    width: 100%;
    min-height: 265px;
    padding: 0 14px 50px 0;
  }

  .bt-hero-photo--main {
    width: min(250px, 80%);
  }

  .bt-hero-photo--sub {
    width: min(175px, 60%);
  }

  .bt-hero-photo--sub figcaption {
    padding: 7px 6px 8px;
    font-size: .7rem;
  }

  .bt-trust-chips {
    gap: 5px;
  }

  .bt-trust-chips span {
    font-size: .74rem;
  }

  .bt-need-strip,
  .bt-route-support {
    margin-left: 8px;
    margin-right: 8px;
  }

  .bt-route-flow {
    grid-template-columns: 1fr;
  }

  .bt-route-flow b {
    transform: rotate(90deg);
    text-align: center;
  }

  .bt-route-flow > div {
    min-height: 82px;
  }
}

/* =========================================================
   2026-08 FINAL: E-mail / LINE contact block
   ========================================================= */
.bt-section--contact {
  padding: 0;
  overflow: hidden;
  border-color: #cbdde6;
  background: #fff;
}

.bt-contact--message {
  display: grid;
  grid-template-columns: minmax(0,1fr) 220px;
  gap: 24px;
  align-items: center;
  padding: 24px;
  border-radius: 15px;
  background: linear-gradient(135deg,#245f7a 0%,#2b708d 100%);
}

.bt-contact-copy {
  min-width: 0;
}

.bt-contact-kicker {
  margin: 0 0 4px !important;
  color: #cbeeff;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
}

.bt-contact--message h3 {
  margin: 0 0 7px;
  color: #fff;
  font-size: 1.28rem;
  line-height: 1.45;
}

.bt-contact--message p {
  color: #fff;
}

.bt-contact-note {
  margin-top: 13px !important;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 10px;
  background: rgba(255,255,255,.10);
  line-height: 1.65;
}

.bt-contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 14px;
}

.bt-contact-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border-radius: 999px;
  text-decoration: none !important;
  font-weight: 900;
  line-height: 1.3;
}

.bt-contact-button--mail {
  color: #245f7a !important;
  background: #fff;
}

.bt-contact-button--line {
  color: #fff !important;
  background: #06c755;
  border: 1px solid rgba(255,255,255,.42);
}

.bt-contact-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(0,0,0,.12);
}

.bt-line-box {
  padding: 12px;
  border-radius: 13px;
  background: #fff;
  color: #274451;
  text-align: center;
  box-shadow: 0 7px 20px rgba(14,45,61,.18);
}

.bt-line-box > a:first-child {
  display: block;
}

.bt-line-box img {
  display: block;
  width: 100%;
  max-width: 170px;
  height: auto;
  margin: 0 auto 7px;
}

.bt-line-box strong {
  display: block;
  color: #17633a;
  font-size: .92rem;
}

.bt-line-box span {
  display: block;
  margin-top: 3px;
  color: #5c6f78;
  font-size: .74rem;
  line-height: 1.5;
}

.bt-line-text-link {
  display: inline-block;
  margin-top: 7px;
  color: #126c8f !important;
  font-size: .77rem;
  font-weight: 800;
}

@media only screen and (max-width:760px) {
  .bt-contact--message {
    grid-template-columns: 1fr;
    padding: 18px 15px;
  }

  .bt-line-box {
    width: min(100%, 270px);
    margin: 0 auto;
  }

  .bt-line-box img {
    max-width: 190px;
  }
}

@media only screen and (max-width:480px) {
  .bt-contact-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .bt-contact-button {
    width: 100%;
  }
}

/* =========================================================
   FINAL CONTACT UI OVERRIDE
   E-mail / LINE inquiry buttons + QR layout
   ========================================================= */

.bt-section.bt-section--contact {
  padding: 0 !important;
  overflow: hidden;
  background: #ffffff !important;
}

.bt-section--contact .bt-contact.bt-contact--message {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 220px !important;
  gap: 24px !important;
  align-items: center !important;
  padding: 24px !important;
  border-radius: 15px !important;
  background: linear-gradient(135deg,#245f7a 0%,#2b708d 100%) !important;
}

.bt-section--contact .bt-contact-copy {
  min-width: 0;
}

.bt-section--contact .bt-contact-kicker {
  margin: 0 0 4px !important;
  color: #cbeeff !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  letter-spacing: .06em;
}

.bt-section--contact .bt-contact--message h3 {
  margin: 0 0 7px !important;
  color: #ffffff !important;
  font-size: 1.28rem !important;
  line-height: 1.45 !important;
}

.bt-section--contact .bt-contact--message p {
  color: #ffffff !important;
}

.bt-section--contact .bt-contact-note {
  margin: 13px 0 0 !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,.10) !important;
  line-height: 1.65 !important;
}

.bt-section--contact .bt-contact-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 15px !important;
}

.bt-section--contact .bt-contact-actions a.bt-contact-button {
  display: inline-flex !important;
  min-width: 190px !important;
  min-height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 9px 18px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  box-sizing: border-box !important;
}

.bt-section--contact .bt-contact-actions a.bt-contact-button--mail,
.bt-section--contact .bt-contact-actions a.bt-contact-button--mail:link,
.bt-section--contact .bt-contact-actions a.bt-contact-button--mail:visited {
  color: #245f7a !important;
  background: #ffffff !important;
  border: 1px solid #ffffff !important;
}

.bt-section--contact .bt-contact-actions a.bt-contact-button--mail:hover,
.bt-section--contact .bt-contact-actions a.bt-contact-button--mail:focus {
  color: #17485f !important;
  background: #eef8fc !important;
}

.bt-section--contact .bt-contact-actions a.bt-contact-button--line,
.bt-section--contact .bt-contact-actions a.bt-contact-button--line:link,
.bt-section--contact .bt-contact-actions a.bt-contact-button--line:visited {
  color: #ffffff !important;
  background: #06c755 !important;
  border: 1px solid #33d976 !important;
}

.bt-section--contact .bt-contact-actions a.bt-contact-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(0,0,0,.12);
}

/* QR card */
.bt-section--contact .bt-line-box {
  width: 220px !important;
  max-width: 100% !important;
  padding: 12px !important;
  border-radius: 13px !important;
  background: #ffffff !important;
  color: #274451 !important;
  text-align: center !important;
  box-shadow: 0 7px 20px rgba(14,45,61,.18) !important;
  box-sizing: border-box !important;
}

.bt-section--contact .bt-line-box > a:first-child {
  display: block !important;
  text-decoration: none !important;
}

.bt-section--contact .bt-line-box img {
  display: block !important;
  width: 170px !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 auto 7px !important;
}

.bt-section--contact .bt-line-box strong {
  display: block !important;
  color: #17633a !important;
  font-size: .92rem !important;
  line-height: 1.4 !important;
}

.bt-section--contact .bt-line-box span {
  display: block !important;
  margin-top: 3px !important;
  color: #5c6f78 !important;
  font-size: .74rem !important;
  line-height: 1.5 !important;
}

.bt-section--contact .bt-line-box a.bt-line-text-link,
.bt-section--contact .bt-line-box a.bt-line-text-link:link,
.bt-section--contact .bt-line-box a.bt-line-text-link:visited {
  display: inline-block !important;
  margin-top: 7px !important;
  color: #126c8f !important;
  font-size: .77rem !important;
  font-weight: 800 !important;
  text-decoration: underline !important;
}

@media only screen and (max-width:760px) {
  .bt-section--contact .bt-contact.bt-contact--message {
    grid-template-columns: 1fr !important;
    padding: 18px 15px !important;
  }

  .bt-section--contact .bt-line-box {
    width: min(100%, 270px) !important;
    margin: 0 auto !important;
  }

  .bt-section--contact .bt-line-box img {
    width: 190px !important;
  }
}

@media only screen and (max-width:480px) {
  .bt-section--contact .bt-contact-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .bt-section--contact .bt-contact-actions a.bt-contact-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}

