/* GUIDY / Yuki's visual design, adapted to Isamu's existing UI.
   Layout, fixed customer tabs and chat viewport are owned by style.css.
   Keep this file limited to branding, materials and visual treatments. */
:root {
  --foam: #f2f5f4;
  --sky: #b6d8ec;
  --shallow: #93d2d4;
  --lagoon: #1c9aae;
  --deep: #0a4b8c;
  --sand: #dccfbe;
  --ink: #10273d;
  --sunset: #ee6b45;
  --sunset-hover: #f17d5b;
  --paper: #fff;
  --mute: #5b7184;
  --line: #d7e1e4;
  --biz-bg: #edf2f4;
  --lagoon-dark: #0f6f80;
  --sea-wash: #e8f3f3;
  --sand-wash: #f7f2eb;
  --blue: var(--deep);
  --blue-dark: var(--ink);
  --navy: var(--ink);
  --muted: var(--mute);
  --bg: var(--foam);
  --aqua: var(--sea-wash);
  --green: var(--lagoon-dark);
  --radius: 0px;
  --shadow: 0 8px 24px rgb(16 39 61 / 7%);
  --f-min: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --f-lat: "Jost", "Futura", "Avenir Next", sans-serif;
  --f-body: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-family: var(--f-body);
  color-scheme: light;
}
body { background: var(--paper); -webkit-font-smoothing: antialiased; }
body.biz { background: var(--biz-bg); --radius: 12px; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline-color: var(--lagoon-dark);
}
.header { background: var(--foam); border-color: var(--line); }
.nav-wrap { min-height: 80px; }
.brand, .footer .brand {
  font-family: var(--f-lat);
  font-weight: 500;
  letter-spacing: .23em;
  color: var(--ink);
}
.brand svg { stroke: var(--lagoon-dark); stroke-width: 2; }
.header-menu { color: var(--ink); }
.business-link { color: var(--deep); font-weight: 500; }
.demo-bar { background: var(--ink); color: var(--foam); }
.drawer { background: var(--paper); }
.drawer a, .drawer button { background: var(--foam); }

/* Preserve the agreed rounded-top tab shape and all three destinations. */
.header .customer-tabs > a:not(.current) {
  background: var(--paper);
  color: var(--mute);
}
.header .customer-tabs > a.current { background: var(--deep); }

.page-title h1, .customer-hero h1, .activity-section h2,
.customer-support h2, .profile-name h1, .account-section h2,
.dialog-title {
  font-family: var(--f-min);
  font-weight: 600;
  letter-spacing: .06em;
}
body.biz h1, body.biz h2, body.biz h3 {
  font-family: var(--f-body);
  font-weight: 700;
  letter-spacing: .02em;
}
.eyebrow { font-family: var(--f-lat); color: var(--lagoon-dark); }
.price, .stat-card strong, .results-bar strong {
  font-family: var(--f-lat), var(--f-body);
  font-weight: 500;
}
.price small { font-family: var(--f-body); }

/* The supplied photo stays still: text and search stay in the same place. */
.customer-hero {
  min-height: 340px;
  background-color: var(--deep);
  background-image: url("assets/hero.webp");
  background-position: center 45%;
}
.customer-hero::before {
  background: linear-gradient(90deg, rgb(16 39 61 / 42%), rgb(16 39 61 / 8%) 62%, transparent 85%);
}
.customer-hero .container { padding-top: 36px; padding-bottom: 36px; }
.customer-hero h1, .customer-hero p { text-shadow: none; color: var(--paper); }
.customer-hero .hero-kicker {
  font-family: var(--f-lat);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .32em;
}
.customer-hero h1 {
  font-size: 42px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .1em;
  margin: 12px 0 12px;
}
.customer-hero .hero-english {
  font-family: var(--f-lat);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .07em;
}
.customer-hero .hero-description {
  max-width: 420px;
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.9;
}

.btn { border-radius: 999px; font-weight: 700; }
.btn.primary { background: var(--deep); color: var(--paper); }
.btn.primary:hover { background: var(--ink); }
.btn.outline { color: var(--deep); border-color: var(--line); background: var(--paper); }
.btn.outline:hover { border-color: var(--deep); background: var(--foam); }
.btn.ghost { color: var(--deep); background: var(--foam); }
/* Sunset is reserved for the primary task. Ink text keeps it readable. */
body:not(.biz) .search-submit,
body:not(.biz) .filter-panel > .btn.primary,
body:not(.biz) #booking-form > .btn.primary,
body:not(.biz) #post-form .form-actions > .btn.primary {
  background: var(--sunset);
  color: var(--ink);
}
body:not(.biz) .search-submit:hover,
body:not(.biz) .filter-panel > .btn.primary:hover,
body:not(.biz) #booking-form > .btn.primary:hover,
body:not(.biz) #post-form .form-actions > .btn.primary:hover {
  background: var(--sunset-hover);
}
.customer-search .simple-search { border-radius: 0; background: var(--paper); }
.field label, .field-label { color: var(--ink); }
.field input, .field select, .field textarea, .simple-search input,
.simple-search select, .sort { border-color: var(--line); border-radius: 4px; }
.activity-section { background: var(--foam); }
.activity-tile, .support-tile { border-radius: 0; border-color: var(--line); background: var(--paper); }
.activity-tile:hover, .support-tile:hover { background: var(--foam); border-color: var(--lagoon-dark); }
.activity-tile > .line-icon, .support-tile .line-icon, .tile-arrow { color: var(--lagoon-dark); }
.activity-tile b, .support-tile b { font-weight: 500; }
.panel, .profile-top, .job-card, .booking-item,
.message-layout, .spec { border-radius: 0; box-shadow: none; }
.guide-card { box-shadow: none; border-radius: var(--radius); }
.guide-card:hover { transform: none; border-color: var(--lagoon-dark); }
.identity h3 { font-weight: 500; }
.card-note { color: var(--ink); }
.card-cover::after { background: linear-gradient(0deg, rgb(16 39 61 / 16%), transparent); }
.cover-label { background: var(--paper); color: var(--ink); border-radius: 0; }
.card-meta { border-color: var(--line); }
.link-arrow { color: var(--deep); border-color: var(--line); }
.tag { color: var(--lagoon-dark); background: var(--sea-wash); border-radius: 2px; }
.chip { color: var(--mute); }
.chip.active { background: var(--deep); color: var(--paper); border-color: var(--deep); }
.notice { background: var(--sea-wash); color: var(--lagoon-dark); border-radius: 4px; }
.avatar.guide-photo { background: var(--foam); box-shadow: none; }
.footer { background: var(--foam); }
.footer small { color: var(--mute); }

/* Business controls keep a practical dashboard treatment. */
body.biz .header { background: var(--paper); }
body.biz .panel, body.biz .profile-top, body.biz .job-card,
body.biz .booking-item, body.biz .message-layout, body.biz .business-option {
  border-radius: 12px;
}
body.biz .btn { border-radius: 7px; }
.business-option { background: var(--paper); }
.business-option > .line-icon { color: var(--deep); }

/* No height or scrolling overrides here: retain the tested chat behavior. */
.chat-stream { background: var(--foam); }
.conversation { border-color: var(--line); }
.conversation.active { background: var(--sea-wash); }
.chat-day, .bubble-row small { color: var(--mute); }
.mine .bubble, .chat-form button { background: var(--deep); color: var(--paper); }
.chat-head, .chat-form { background: var(--paper); }

@media (max-width: 600px) {
  .nav-wrap { min-height: 72px; }
  .nav-wrap .brand { font-size: 20px; letter-spacing: .17em; }
  .customer-hero { min-height: 292px; background-position: 57% center; }
  .customer-hero::before {
    background: linear-gradient(90deg, rgb(16 39 61 / 40%), rgb(16 39 61 / 13%) 75%, transparent);
  }
  .customer-hero .container { padding-top: 25px; padding-bottom: 25px; }
  .customer-hero .hero-kicker { font-size: 18px; }
  .customer-hero h1 { font-size: 30px; line-height: 1.55; margin: 10px 0; letter-spacing: .08em; }
  .customer-hero .hero-english { font-size: 13px; letter-spacing: .05em; }
  .customer-hero .hero-description { max-width: 292px; font-size: 13px; line-height: 1.85; margin-top: 12px; }
  .activity-section h2, .customer-support h2 { font-size: 20px; letter-spacing: .035em; }
  .messages-view .message-layout { border-radius: 0; }
  .messages-view .chat-form { padding-bottom: calc(9px + env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
  .nav-wrap .brand { font-size: 18px; letter-spacing: .14em; }
  .customer-hero h1 { font-size: 28px; }
  .activity-section h2, .customer-support h2 { font-size: 18px; }
}
