:root {
  --ink:#142535;
  --muted:#5e6d79;
  --purple:#376c83;
  --mint:#d5e9ee;
  --line:#dce5e9;
  --card:#fff;
  --shadow:0 20px 52px rgba(19,43,58,.07);
  color:var(--ink);
  background:#f6f9fa;
}
body { background:#f6f9fa; }
.site-shell { background:#f6f9fa; }
.topbar { height:76px; background:#f9fbfc; border-color:var(--line); padding-inline:clamp(22px,5vw,82px); }
.brand { color:#142535; letter-spacing:-.07em; }
.brand-logo { display:block; width:164px; height:auto; }
.footer-brand .brand-logo { width:174px; }
.brand-symbol { background:#142a3a; color:#e4f4f6; border-radius:10px; }
.brand-symbol span { color:#8abac9; }
.brand-accent { color:#477b90; }
.desktop-nav { color:#4b6170; }
.desktop-nav a:hover,.text-link:hover { color:#2e728d; }
.pill { border-radius:11px; transition:transform .18s,box-shadow .18s,background .18s; }
.pill-dark,.pill-primary { background:#173748; color:#fff; }
.pill-dark:hover,.pill-primary:hover { background:#28566b; }
.pill-mint { background:#bcdce4; color:#143345; }
.pill-outline { color:#173748; border-color:#b9ccd5; }
input:focus,select:focus,textarea:focus { border-color:#5c9cb2!important; box-shadow:0 0 0 3px rgba(81,143,164,.16); }

.hero-next {
  margin:0;
  min-height:650px;
  border-radius:0;
  display:block;
  color:#fff;
  background:linear-gradient(90deg,rgba(10,27,40,.43) 0%,rgba(10,27,40,.08) 60%),
    url('/images/hero-editorial.webp') center/cover no-repeat;
}
.hero-next .hero-copy { max-width:790px; padding:clamp(82px,8vw,126px) clamp(28px,7vw,112px) 84px; }
.hero-next h1 { max-width:660px; margin-top:28px; font-size:clamp(54px,5.5vw,86px); line-height:.99; letter-spacing:-.075em; text-shadow:none; }
.hero-next p { color:#e1eaf0; max-width:550px; font-size:17px; line-height:1.6; }
.hero-next .eyebrow { color:#b8dce8; }
.hero-next .eyebrow:before { background:#85c4d5; }
.hero-next .hero-art { display:none; }
.hero-next .hero-search { max-width:570px; border-radius:11px; box-shadow:0 22px 54px rgba(4,16,26,.28); }
.hero-next .hero-search .pill { border-radius:8px; }
.hero-next .hero-badges { color:#e0eaf0; font-weight:550; gap:12px 24px; }
.hero-next .hero-badges b { color:#a4d3de; }
.hero-next .hero-ribbon { display:none; }

.section { padding:76px clamp(22px,6vw,100px); }
.section-tight { padding-top:44px; }
.section-kicker { color:#3b798f; font-size:11px; letter-spacing:.18em; font-weight:850; }
.section h2,.page-heading h1 { color:#172b39; letter-spacing:-.06em; }
.section-description,.page-heading p { color:#61727d; }
.inline-link,.profile-source>a { color:#2c6c85; }
.inline-link:hover,.profile-source>a:hover { text-decoration:underline; }

.visual-stories {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  padding:70px clamp(22px,6vw,100px) 28px;
}
.editorial-heading { grid-column:1/-1; display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:12px; }
.editorial-heading p { margin:0; font-size:clamp(23px,2.7vw,38px); line-height:1.1; letter-spacing:-.055em; font-weight:730; color:#172b39; max-width:630px; }
.visual-story {
  height:370px;
  position:relative;
  overflow:hidden;
  border-radius:14px;
  background:#152838;
  color:#fff;
  box-shadow:0 18px 45px rgba(24,47,61,.1);
  transition:transform .2s,box-shadow .2s;
}
.visual-story:nth-of-type(n+3) { height:270px; }
.visual-story:hover { transform:translateY(-3px); box-shadow:0 24px 52px rgba(24,47,61,.17); }
.visual-story img { width:100%; height:100%; object-fit:cover; transition:transform .4s; filter:saturate(.68); }
.visual-story:hover img { transform:scale(1.035); }
.visual-story:after { content:""; position:absolute; inset:20% 0 0; background:linear-gradient(transparent,rgba(7,23,35,.88)); }
.visual-story-copy { position:absolute; z-index:1; inset:auto 28px 28px; display:flex; flex-direction:column; gap:8px; }
.visual-story-copy small { color:#9ed2e0; font-size:10px; letter-spacing:.19em; font-weight:850; }
.visual-story-copy strong { font-size:clamp(25px,2.5vw,36px); line-height:1.08; letter-spacing:-.055em; max-width:430px; }
.visual-story-copy>span { font-size:13px; color:#e3edf1; }
.visual-stories-note { grid-column:1/-1; color:#73828d; text-align:right; font-size:11px; }

.categories-section { padding-top:60px; }
.category-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.category-card {
  min-height:82px; padding:16px 17px; border:1px solid #dfe8ec; border-radius:11px;
  background:#fff; box-shadow:none; flex-direction:row; align-items:center; gap:12px;
}
.category-card:hover { border-color:#8dbac9; box-shadow:0 10px 26px rgba(35,74,91,.08); }
.category-card .cat-icon { flex:none; width:36px; height:36px; border-radius:9px; background:#e8f1f4; color:#396e83; font-size:15px; }
.category-card strong { flex:1; color:#243c4a; font-size:13px; line-height:1.2; }
.category-card small { font-size:17px; color:#7193a1; }

.card-grid { gap:16px; }
.business-card,.event-card { border-color:#dce6ea; border-radius:14px; box-shadow:none; }
.business-card:hover,.event-card:hover { box-shadow:var(--shadow); }
.card-visual { background:#dce8ec; }
.visual-1,.visual-2,.visual-3,.visual-4 { background:#dce8ec; }
.visual-mark { color:#315d70; border-radius:12px; }
.card-visual img { width:100%; height:100%; object-fit:cover; filter:saturate(.7); }
.card-body { padding:22px; }
.tag { color:#306b83; background:#e8f2f5; border-radius:6px; }
.card-bottom { color:#526a77; }
.empty-card { background:#fff; border-color:#bccfd7; border-radius:13px; }
.visual-disclaimer,.illustrative-detail span { position:absolute; right:10px; bottom:9px; color:#fff; background:#102939bc; padding:4px 7px; border-radius:5px; font-size:10px; font-weight:700; }
.source-rating { color:#296c86; font-size:13px; font-weight:750; margin:0 0 15px; }
.illustrative-detail { position:relative; overflow:hidden; }
.illustrative-detail img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }

.feature-band { background:#142b3b; border-radius:15px; }
.feature-band p { color:#c2d3db; }
.feature-list div { border-radius:10px; }
.feature-list span { color:#95cbd8; }
.footer { background:#e9f0f3; }
.footer a:not(.brand),.footer p { color:#5c6f7b; }
.page { padding-top:65px; }
.detail-visual { background:linear-gradient(125deg,#dce9ee,#a9cbd6); color:#2c637a; border-radius:14px; }
.detail-card,.form-card,.admin-main,.success-card { border-radius:14px; }
.offering,.notice,.preview-box { border-radius:10px; }
.field { color:#334e5d; }
.field input,.field select,.field textarea,.search-bar input,.search-bar select { border-color:#cbdce3; border-radius:9px; }
.check a { color:#2c6c85; }
.tabs button.active { background:#e4f0f4; color:#276681; }
.admin-side { background:#193244; border-radius:13px; }
.admin-side .active,.admin-side a:hover,.admin-side button:hover { background:#ffffff20; }
.preview-box,.notice { background:#e8f2f5; color:#315365; border-color:#a9cbd6; }
.success-card .checkmark { background:#d8eeeb; color:#28675b; }
.showcase-card { border:1px solid var(--line); border-radius:12px; box-shadow:none; }
.showcase-heading span { color:#427c91; }
.showcase-map { border-radius:9px; background:linear-gradient(90deg,#d9e5ea 1px,transparent 1px),linear-gradient(#d9e5ea 1px,transparent 1px),#f3f8fa; background-size:20% 20%; }
.showcase-map .demo-table { background:#c8e2e7; color:#28545e; border-color:#7eafb9; box-shadow:0 0 0 9px #dcecef; }
.showcase-map .demo-chair { background:#d8e9ee; color:#315e70; border-color:#89b5c3; }
.showcase-map .demo-bed { background:#d6e7ef; color:#315f78; border-color:#96bcd0; }
.showcase-map .demo-sauna { background:#d7e8e9; color:#31575e; border-color:#a3c3c5; }
.calendar-column { border-color:#d7e4e9; border-radius:11px; background:#f7fafb; }
.calendar-column-head { background:#e6f1f4; }
.calendar-column-head small { color:#5c7886; }
.calendar-appointment { border-left-color:#4b8297; }
.calendar-appointment time { color:#356f85; }
.floor-resource.kind-professional { background:#deedf1; border-color:#88b4c4; color:#315f74; }

.profile-source { border-top:1px solid var(--line); margin-top:22px; padding-top:18px; display:grid; gap:10px; font-size:14px; }
.source-title { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.source-title span { font-weight:800; }
.source-title strong { color:#316d84; font-size:19px; }
.source-title small { font-size:12px; color:#687c86; }
.profile-source>small { color:#768893; font-size:11px; line-height:1.5; }
.profile-source p { margin:2px 0; font-size:13px; }
.profile-source details { border:1px solid var(--line); padding:10px 12px; border-radius:9px; }
.profile-source summary { font-weight:750; cursor:pointer; }
.profile-hours { display:grid; grid-template-columns:1fr auto; gap:6px; padding-top:12px; font-size:12px; }
.profile-hours strong { text-align:right; }
.business-hours { border:1px solid var(--line); padding:15px; border-radius:10px; background:#f3f8fa; }
.business-hours>strong { font-size:13px; }
.business-hours .profile-hours { gap:7px 12px; }
.business-hours .profile-hours strong { color:#294757; }
.business-hours .profile-hours small { display:block; color:#5f8392; font-size:10px; font-weight:650; }

.bar-plans { padding-top:50px; }
.bar-plans-shell { display:grid; grid-template-columns:220px 1fr 240px; gap:22px; align-items:center; background:#193243; border-radius:15px; padding:26px; color:#fff; }
.plan-switch { display:grid; gap:10px; }
.plan-switch button { border:1px solid #ffffff3c; color:#fff; background:#ffffff12; border-radius:9px; padding:14px; text-align:left; font-weight:800; }
.plan-switch button.active { background:#b7d8e1; color:#173647; }
.plan-switch p,.plan-explain p { color:#c5d7df; font-size:13px; line-height:1.55; }
.plan-explain strong { font-size:22px; line-height:1.1; display:block; }
.demo-floor { min-height:286px; background:#f2f7f9; border-radius:11px; padding:16px; position:relative; }
.demo-floor-plan { display:none; position:relative; width:100%; height:255px; border:2px dashed #a9c7d2; border-radius:9px; }
.demo-floor-plan.active { display:block; }
.demo-zone { position:absolute; border-radius:8px; display:grid; place-items:center; text-align:center; font-size:12px; font-weight:800; }
.demo-counter { left:4%; top:8%; height:82%; width:18%; background:#8eb6c4; color:#173748; }
.demo-stool { width:9%; height:42px; left:25%; background:#d9e9ee; color:#294959; }
.demo-stool:nth-of-type(2) { top:9%; }.demo-stool:nth-of-type(3) { top:39%; }.demo-stool:nth-of-type(4) { top:69%; }
.demo-floor .demo-table { width:18%; height:70px; background:#c9e1e6; color:#22515d; border:0; border-radius:8px; box-shadow:none; }
.demo-floor .demo-table:nth-last-of-type(3) { left:42%; top:12%; }.demo-floor .demo-table:nth-last-of-type(2) { left:68%; top:12%; }.demo-floor .demo-table:last-of-type { left:55%; top:58%; }
.demo-stage { left:68%; top:52%; width:26%; height:34%; background:#314c5a; color:#fff; }
.demo-floor-plan[data-demo-plan=live] .demo-table:nth-last-of-type(2) { left:42%; top:12%; }
.demo-floor-plan[data-demo-plan=live] .demo-table:last-of-type { left:42%; top:58%; }
.layout-preview-control { min-width:210px; }.layout-preview-control select { min-width:200px; }
.layout-date-form { margin:20px 0; padding:20px; border:1px solid var(--line); border-radius:12px; background:#f2f8fa; display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
.layout-date-form>div:first-child { flex:1 1 180px; }
.layout-date-form p { font-size:13px; color:var(--muted); }
.layout-date-form .field { flex:1 1 145px; }
.layout-date-form small,.layout-date-form .form-status { flex-basis:100%; }
.floor-resource.kind-stage,.floor-resource.decorative { background:#345261!important; color:white!important; border-style:dashed!important; }
.floor-resource.kind-bar_seat { border-radius:26px; background:#c8e0e7; }
.floor-resource[hidden] { display:none!important; }
.event-floor { margin-top:25px; }.event-floor .floor-map { margin:14px 0; }.event-floor small { color:var(--muted); }

@media(max-width:1100px) {
  .category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .bar-plans-shell { grid-template-columns:200px 1fr; }
  .plan-explain { grid-column:1/-1; }
}
@media(max-width:760px) {
  .topbar { height:72px; }
  .hero-next { min-height:660px; background-position:57% center; background-image:linear-gradient(90deg,rgba(9,27,39,.9),rgba(9,27,39,.66) 60%,rgba(9,27,39,.28)),url('/images/hero-editorial.webp'); }
  .hero-next .hero-copy { padding:80px 26px 58px; }
  .hero-next h1 { font-size:clamp(50px,12vw,68px); max-width:550px; }
  .hero-next .hero-search { flex-wrap:wrap; }
  .hero-next .hero-search label { min-height:44px; }
  .hero-next .hero-search .pill { width:100%; }
  .visual-stories { padding:54px 18px 16px; gap:12px; }
  .editorial-heading { display:block; }
  .editorial-heading p { margin-top:12px; font-size:31px; }
  .visual-story,.visual-story:nth-of-type(n+3) { height:310px; }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-card { min-height:74px; padding:11px; }
  .bar-plans-shell { grid-template-columns:1fr; }
  .plan-explain { grid-column:auto; }
  .plan-switch { grid-template-columns:1fr 1fr; }
  .plan-switch p { grid-column:1/-1; }
}
@media(max-width:600px) {
  .brand-logo { width:152px; }
  .hero-next { min-height:690px; background-position:62% center; }
  .hero-next .hero-copy { padding:73px 25px 52px; }
  .hero-next h1 { font-size:52px; }
  .hero-next p { font-size:15px; }
  .hero-next .hero-badges { display:grid; gap:8px; }
  .visual-stories { grid-template-columns:1fr; }
  .editorial-heading,.visual-stories-note { grid-column:auto; }
  .visual-story,.visual-story:nth-of-type(n+3) { height:290px; }
  .visual-story-copy { inset:auto 22px 22px; }
  .visual-story-copy strong { font-size:28px; }
  .category-card .cat-icon { width:31px; height:31px; font-size:13px; }
  .category-card strong { font-size:12px; }
  .bar-plans-shell { padding:18px; }
  .demo-floor { min-height:240px; padding:10px; }
  .demo-floor-plan { height:215px; }
}
