/* Kintsugi presentation for canonical Booking components. */
body.page-booking-catalog,body[class*="page-booking-"]{--color-primary:#5f765d;--color-primary-dark:#3f523e;--color-primary-light:#edf2e9;--color-text:#242b24;--color-muted:#626d62;--color-text-muted:#626d62;--color-border:#dfe4dc;--color-line:#dfe4dc;--color-white:#fff;--color-surface:#fff;--color-soft:#f8faf6;--color-background-muted:#edf2e9;--font-heading:'Noto Serif JP',serif;--font-body:'Montserrat',sans-serif;--bk-font-heading:'Noto Serif JP',serif;--bk-font-body:'Montserrat',sans-serif;--sv-paper:#faf9f5;--sv-ink:#222822;--sv-sage:#5f765d;--sv-sage-deep:#3f523e;--sv-gold:#c8a95a;--sv-line:#dfe4dc;background:#faf9f5;color:#242b24}
.kg-services__hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #f4f2e9 0%, var(--sv-paper) 100%);
  border-bottom: 1px solid var(--sv-line);
}
/* Sage pattern wash — v1's tiled diagonal treatment. */
.kg-services__wash {
  position: absolute; inset: 0; pointer-events: none; opacity: 0.55;
  background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%235F765D' fill-opacity='0.10'%3E%3Cpath d='M0 0h40v40H0V0zm40 40h40v40H40V40z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
/* Organic leaf-like blooms, v1's floating shapes. Decorative only. */
.kg-services__leaf {
  position: absolute; pointer-events: none; display: none;
  border-radius: 62% 38% 55% 45% / 48% 55% 45% 52%;
}
.kg-services__leaf--1 { top: -70px; right: -60px; width: 330px; height: 330px; background: rgba(95, 118, 93, 0.11); }
.kg-services__leaf--2 { bottom: -120px; left: -80px; width: 280px; height: 280px; background: rgba(200, 169, 90, 0.13); }
@media (min-width: 900px) { .kg-services__leaf { display: block; } }
/* Thin gold seam — the kintsugi repair line. */
.kg-services__seam {
  position: absolute; top: 0; bottom: 0; left: 62%;
  width: 1px; pointer-events: none;
  background: linear-gradient(180deg, transparent, var(--sv-gold) 26%, transparent 78%);
  opacity: 0.5; transform: rotate(9deg);
  display: none;
}
@media (min-width: 900px) { .kg-services__seam { display: block; } }

.kg-services__hero-inner {
  position: relative; z-index: 1;
  max-width: 1240px; margin: 0 auto;
  padding: 96px 24px 72px;
}
.kg-services__eyebrow {
  margin: 0;
  font-family: var(--bk-font-body, 'Montserrat', sans-serif);
  font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--sv-sage);
}
.kg-services__title {
  margin: 18px 0 0; max-width: 820px;
  font-family: var(--bk-font-heading, 'Noto Serif JP', serif);
  font-size: clamp(42px, 6vw, 76px); font-weight: 700; line-height: 1.02;
  letter-spacing: -0.01em; color: var(--sv-ink);
}
.kg-services__intro {
  margin: 22px 0 0; max-width: 720px;
  font-family: var(--bk-font-body, 'Montserrat', sans-serif);
  font-size: 18px; line-height: 1.75; color: #4c524c;
}
/* Gold/sage pill rather than the default link colour. */
.kg-services__plans {
  display: inline-flex; align-items: center; gap: 9px;
  margin-top: 28px; min-height: 46px; padding: 11px 22px;
  border: 1px solid var(--sv-gold); border-radius: 999px;
  background: rgba(200, 169, 90, 0.10); color: var(--sv-sage-deep);
  font-family: var(--bk-font-body, 'Montserrat', sans-serif);
  font-size: 14px; font-weight: 600; text-decoration: none;
  transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease;
}
.kg-services__plans:hover { background: var(--sv-gold); border-color: var(--sv-gold); color: #fff; }


.page-booking-catalog .kg-native-catalog{max-width:1240px;padding:32px 24px 72px;margin:auto}
.page-booking-catalog .booking-catalog{font-family:'Montserrat',sans-serif;font-size:15px;line-height:1.6}
.page-booking-catalog .booking-catalog__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.page-booking-catalog .booking-catalog__body{padding:16px;gap:8px}
.page-booking-catalog .booking-catalog__body h2{font:500 18px/1.4 'Noto Serif JP',serif;margin:0;color:#222822}
.page-booking-catalog .booking-catalog__action{display:flex;align-items:center;justify-content:center;background:#5f765d;border-radius:6px;min-height:44px;padding:10px 12px;color:#fff;font-size:13px;line-height:1.4;font-weight:600;text-align:center}
.page-booking-catalog .booking-catalog__action:hover{background:#3f523e}
.page-booking-catalog .booking-catalog label{font:600 13px/1.4 'Montserrat',sans-serif;margin:0}
.page-booking-catalog .booking-catalog input,.page-booking-catalog .booking-catalog select{font:400 14px/1.4 'Montserrat',sans-serif;min-height:44px}
.page-booking-catalog .booking-catalog .booking-catalog__search{margin-inline-end:8.75rem}
.page-booking-catalog:not(.page-services) #main-content>.container{width:min(1240px,calc(100% - 48px));margin:auto;padding:40px 0 72px}
.page-booking-catalog .page-hero{padding:0 0 32px;background:none;margin:0}
.page-booking-catalog .page-hero h1{font:500 clamp(2rem,4vw,3rem)/1.2 'Noto Serif JP',serif;margin:0 0 20px;color:#222822}
.page-booking-catalog .page-hero p{font:400 17px/1.6 'Montserrat',sans-serif;color:#626d62;max-width:760px}
body[class*="page-booking-"] .fb{padding-top:32px;font-size:15px;--fb-heading:'Noto Serif JP',serif}
body[class*="page-booking-"] .fb__main{align-content:start}
body[class*="page-booking-"] .fb__aside{top:132px}
body[class*="page-booking-"] .fb h1,body[class*="page-booking-"] .fb h2{font-weight:500}
body[class*="page-booking-"] .fb label{font-family:'Montserrat',sans-serif}
.page-booking-build .fb-select{height:auto;min-height:0;padding:0;border:0;background:transparent;box-shadow:none}
.page-booking-build .fb-select__native{width:1px;height:1px;min-height:0;padding:0;border:0}
.page-booking-build .fb-select__trigger{width:100%}
@media(max-width:1023px){.page-booking-catalog .booking-catalog__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.page-booking-catalog .booking-catalog__grid{grid-template-columns:minmax(0,1fr);gap:16px}.page-booking-catalog .kg-native-catalog{padding:20px 16px 48px}.page-booking-catalog .booking-catalog__body{padding:16px}.page-booking-catalog .booking-catalog input,.page-booking-catalog .booking-catalog select{font-size:16px}.kg-services__hero-inner{padding:56px 20px 40px}.kg-services__intro{font-size:16px}.page-booking-catalog:not(.page-services) #main-content>.container{width:calc(100% - 32px);padding:32px 0 48px}}
@media(max-width:700px){.page-booking-catalog .booking-catalog .booking-catalog__search{margin-inline-end:7.5rem}}

/* Imported package descriptions use the same readable text rhythm as plain copy. */
.fb-description__rich { white-space:normal; color:var(--color-text, #242b24); }
.fb-description__rich p { margin:0 0 1rem; line-height:1.65; }
.fb-description__rich h3 { margin:1.25rem 0 .625rem; font-size:1.125rem; line-height:1.4; }
.fb-description__rich ul, .fb-description__rich ol { margin:0 0 1rem; padding-inline-start:1.25rem; }
.fb-description__rich ul { list-style:disc; }
.fb-description__rich ol { list-style:decimal; }
.fb-description__rich li { margin:.375rem 0; padding:0; line-height:1.6; }
.fb-description__rich a[href] { text-decoration:underline; text-underline-offset:.15em; }
.fb-description__rich blockquote { margin:1rem 0; padding-inline-start:1rem; border-inline-start:3px solid var(--color-border, #dfe4dc); }

/* Visible package choices share one compact row on cards and detail pages. */
.kg-pack-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-width:28rem; margin:12px 0; }
.booking-catalog__body .kg-pack-options { max-width:none; margin:2px 0 4px; }
.kg-pack-options a, .booking-catalog .kg-pack-options button { display:flex; align-items:center; justify-content:center; min-height:44px; padding:9px 16px; border:1px solid #a8b6a4; border-radius:999px; background:#fff; color:#3f523e; font:600 14px/1.4 'Montserrat',sans-serif; text-decoration:none; text-align:center; }
.kg-pack-options a[aria-current=page], .booking-catalog .kg-pack-options button[aria-pressed=true] { background:#5f765d; color:#fff; border-color:#5f765d; box-shadow:none; }
.kg-pack-options a:hover, .booking-catalog .kg-pack-options button:not(:disabled):hover { border-color:#3f523e; box-shadow:inset 0 0 0 1px #3f523e; }
.kg-pack-options a:focus-visible { outline:3px solid #3f523e; outline-offset:3px; }
.booking-catalog .kg-pack-options button:disabled { opacity:.5; cursor:not-allowed; }
