:root{--mos-primary:#0878c9;--mos-secondary:#0878c9;--mos-accent:#35b6e8;--mos-background:#f4fbff;--mos-surface:#fff;--mos-card:#fff;--mos-text:#0b2740;--mos-heading:#0b2740;--mos-muted-text:#5f6b78;--mos-border:#e7f2f8;--mos-button:#0878c9;--mos-button-text:#fff;--mos-link:#35b6e8;--mos-header:#0878c9;--mos-footer:#fff;--mos-menu:#0878c9;--mos-overlay:.28;--mos-shadow:0 14px 36px rgba(8,78,125,.14);--mos-radius:24px;--mos-glass:none}
.mos-home,.mos-subpage{background:var(--mos-background)!important;color:var(--mos-text)!important}.mos-home .mos-section,.mos-subpage{color:var(--mos-text)!important}.mos-home .mos-section:nth-child(even){background:color-mix(in srgb,var(--mos-background) 92%,var(--mos-primary))!important}.mos-home .mos-card,.mos-sub-card,.mos-catch-card{background:color-mix(in srgb,var(--mos-card) 92%,transparent)!important;color:var(--mos-text)!important;border-color:var(--mos-border)!important;border-radius:var(--mos-radius)!important;box-shadow:var(--mos-shadow)!important;backdrop-filter:var(--mos-glass)}.mos-home .mos-card h3,.mos-home .mos-head h2,.mos-home .mos-card strong,.mos-sub-card h2,.mos-sub-card h3{color:var(--mos-heading)!important}.mos-home .mos-card p,.mos-home .mos-card li,.mos-home .mos-head p,.mos-sub-card p,.mos-sub-card li{color:var(--mos-muted-text)!important}.mos-home .mos-btn,.mos-subpage .mos-back{border-radius:var(--mos-radius)!important}.mos-home .mos-btn-main,.mos-home button.mos-btn-main{background:var(--mos-button)!important;color:var(--mos-button-text)!important;box-shadow:var(--mos-shadow)!important}.mos-home .mos-btn-sub{border-color:color-mix(in srgb,var(--mos-button-text) 45%,transparent)!important;color:var(--mos-button-text)!important;background:color-mix(in srgb,var(--mos-header) 78%,transparent)!important}.mos-home a:not(.mos-btn):not(.mos-card){color:var(--mos-link)}.mos-home .mos-footer{background:var(--mos-footer)!important;color:var(--mos-text)!important;border-color:var(--mos-border)!important}.mos-home .mos-hero{background-color:var(--mos-header)!important}.mos-home .mos-hero:after{background:linear-gradient(to bottom,rgba(0,0,0,calc(var(--mos-overlay) * .35)),rgba(0,0,0,var(--mos-overlay)))!important}.mos-hero-slides{position:absolute;inset:0;z-index:-2;overflow:hidden}.mos-hero-slide{position:absolute;inset:-2%;opacity:0;background-size:cover;background-position:center;transition:opacity 1.15s ease;transform:scale(1.03)}.mos-hero-slide.is-active{opacity:1;animation:mosHeroDrift 10s ease-in-out both}.mos-hero-slide[data-brightness="dark"]{filter:brightness(1.08)}.mos-hero-slide[data-brightness="light"]{filter:brightness(.92)}@keyframes mosHeroDrift{from{transform:scale(1.03) translateX(-.4%)}to{transform:scale(1.06) translateX(.4%)}}.mos-photo img,.mos-boat-main img{object-fit:contain!important;background:color-mix(in srgb,var(--mos-card) 88%,var(--mos-primary))}.mos-card:hover,.mos-btn:hover{transform:translateY(-4px)}.mos-btn:active{transform:translateY(1px) scale(.99)}:focus-visible{outline:3px solid var(--mos-accent)!important;outline-offset:3px!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.mos-hero-slide{transform:none!important}}
/* Day3-26-1: ensure every public area follows published theme variables */
body.marineos-public-fullscreen{background:var(--mos-background)!important;color:var(--mos-text)!important}
.mos-home{--mos-main:var(--mos-primary)!important;--mos-accent:var(--mos-accent)!important;background:var(--mos-background)!important;color:var(--mos-text)!important}
.mos-home:before{background:radial-gradient(circle at 15% 18%,color-mix(in srgb,var(--mos-primary) 24%,transparent),transparent 28%),radial-gradient(circle at 85% 10%,color-mix(in srgb,var(--mos-accent) 16%,transparent),transparent 25%)!important}
.mos-home .mos-title,.mos-home .mos-copy,.mos-home .mos-label{color:#fff!important}
.mos-home .mos-feature-title h2,.mos-home .mos-feature-title .mos-en{color:var(--mos-heading)!important}
.mos-home .mos-chip{background:color-mix(in srgb,var(--mos-primary) 16%,var(--mos-card))!important;border-color:var(--mos-border)!important;color:var(--mos-text)!important}
.mos-home .mos-menu-toggle,.mos-home .mos-drawer{background:var(--mos-menu)!important;color:var(--mos-button-text)!important}
.mos-home .mos-drawer a{color:var(--mos-button-text)!important}
.mos-home .mos-quick-card,.mos-home .mos-quick-card strong,.mos-home .mos-quick-card span{color:var(--mos-text)!important}
.mos-home .mos-access a{color:var(--mos-link)!important}
/* Day3-26-2 official theme special surfaces */
body.mos-theme-black-marble .mos-home,
body.mos-theme-black-marble .mos-subpage{
 background-color:var(--mos-background)!important;
 background-image:
  linear-gradient(118deg,transparent 0 34%,rgba(255,255,255,.035) 35%,transparent 37% 61%,rgba(255,255,255,.025) 62%,transparent 64%),
  radial-gradient(ellipse at 20% 10%,rgba(255,255,255,.055),transparent 34%),
  radial-gradient(ellipse at 82% 72%,rgba(200,169,91,.06),transparent 30%)!important;
 background-attachment:fixed!important;
}
body.mos-theme-black-marble .mos-card,
body.mos-theme-black-marble .mos-sub-card{border-color:rgba(200,169,91,.34)!important}
body.mos-theme-neon-pink-black .mos-home:before{
 background:radial-gradient(circle at 14% 16%,rgba(255,20,147,.24),transparent 28%),radial-gradient(circle at 86% 8%,rgba(255,79,189,.14),transparent 24%)!important;
}
body.mos-theme-neon-pink-black .mos-btn-main{box-shadow:0 0 20px rgba(255,20,147,.42),var(--mos-shadow)!important}

/* Day3-26-3: latest catch typography and surfaces follow the published theme */
.mos-home .mos-catch-card,
.mos-home .mos-catch-card .mos-catch-info,
.mos-home .mos-catch-card .mos-catch-pickup{
  background:color-mix(in srgb,var(--mos-card) 94%,transparent)!important;
  color:var(--mos-text)!important;
}
.mos-home .mos-catch-info h3{
  color:var(--mos-heading)!important;
}
.mos-home .mos-catch-info p,
.mos-home .mos-catch-pickup-comment{
  color:var(--mos-muted-text)!important;
}
.mos-home .mos-catch-info time{
  color:var(--mos-accent)!important;
}
.mos-home .mos-catch-pickup strong{
  color:var(--mos-heading)!important;
}
.mos-home .mos-catch-gallery{
  background:color-mix(in srgb,var(--mos-card) 84%,var(--mos-primary))!important;
  border-top:1px solid var(--mos-border)!important;
  border-bottom:1px solid var(--mos-border)!important;
}
.mos-home .mos-catch-slider,
.mos-home .mos-catch-pickup img{
  background:color-mix(in srgb,var(--mos-background) 82%,#000)!important;
}
.mos-home .mos-catch-prev,
.mos-home .mos-catch-next,
.mos-home .mos-catch-count{
  background:color-mix(in srgb,var(--mos-primary) 76%,rgba(0,0,0,.72))!important;
  color:var(--mos-button-text)!important;
  border:1px solid color-mix(in srgb,var(--mos-button-text) 25%,transparent)!important;
}
.mos-home .mos-catch-card a{
  color:var(--mos-link)!important;
}
/* Day3-26-4: theme-specific surfaces used by both public site and real preview */
body.mos-theme-black-marble .mos-home,
body.mos-theme-black-marble .mos-subpage{background-color:#050505!important;background-image:linear-gradient(115deg,transparent 0 34%,rgba(255,255,255,.035) 35%,transparent 37%),linear-gradient(25deg,transparent 0 57%,rgba(200,169,91,.045) 58%,transparent 60%),radial-gradient(circle at 20% 10%,rgba(255,255,255,.04),transparent 34%)!important;background-attachment:fixed!important}
body.mos-theme-neon-pink-black .mos-card,
body.mos-theme-neon-pink-black .mos-catch-card{box-shadow:0 0 0 1px rgba(255,20,147,.32),0 18px 55px rgba(255,20,147,.18)!important}
body.mos-theme-neon-pink-black .mos-head h2,
body.mos-theme-neon-pink-black .mos-catch-title{text-shadow:0 0 18px rgba(255,20,147,.35)}

/* Day3-28-9: Complete automatic font contrast for all official themes and every public surface. */
:root{
  --mos-background-text:var(--mos-text);
  --mos-surface-text:var(--mos-text);
  --mos-card-text:var(--mos-text);
  --mos-header-text:var(--mos-button-text);
  --mos-footer-text:var(--mos-text);
  --mos-menu-text:var(--mos-button-text);
  --mos-primary-text:var(--mos-button-text);
  --mos-accent-text:#111827;
}
.mos-home,.mos-subpage,.marineos-public-fullscreen{color:var(--mos-background-text)!important}
.mos-home .mos-section{color:var(--mos-background-text)!important}
.mos-home .mos-card,.mos-home .mos-catch-card,.mos-home .mos-event-card,.mos-home .mos-luxury-card,
.mos-subpage .mos-sub-card,.mos-day-modal-card,.mos-contact-sheet-inner{
  color:var(--mos-card-text)!important;
}
.mos-home .mos-card :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,th),
.mos-home .mos-catch-card :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,th),
.mos-home .mos-event-card :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,th),
.mos-subpage .mos-sub-card :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,th),
.mos-day-modal-card :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,th),
.mos-contact-sheet-inner :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,dt,th){color:var(--mos-heading)!important}
.mos-home .mos-card :where(p,span,small,li,dd,time,address,figcaption),
.mos-home .mos-catch-card :where(p,span,small,li,dd,address,figcaption),
.mos-home .mos-event-card :where(p,span,small,li,dd,time,address,figcaption),
.mos-subpage .mos-sub-card :where(p,span,small,li,dd,time,address,figcaption),
.mos-day-modal-card :where(p,span,small,li,dd,time,address,figcaption),
.mos-contact-sheet-inner :where(p,span,small,li,dd,time,address,figcaption){color:var(--mos-muted-text)!important}
.mos-home .mos-card a:not(.mos-btn),.mos-home .mos-catch-card a:not(.mos-btn),.mos-home .mos-event-card a:not(.mos-btn),.mos-subpage .mos-sub-card a:not(.mos-btn){color:var(--mos-link)!important}
.mos-home .mos-btn-main,.mos-home button.mos-btn-main,.mos-subpage .mos-btn-main,
.mos-home .mos-btn-main :where(span,strong,small,i,svg),.mos-subpage .mos-btn-main :where(span,strong,small,i,svg){color:var(--mos-button-text)!important;fill:currentColor!important;stroke:currentColor!important}
.mos-home .mos-btn-sub,.mos-home .mos-btn-sub :where(span,strong,small,i,svg){color:var(--mos-header-text)!important;fill:currentColor!important;stroke:currentColor!important}
.mos-home .mos-menu-toggle,.mos-home .mos-drawer,.mos-home .mos-drawer :where(a,span,strong,small,i,button){color:var(--mos-menu-text)!important}
.mos-home .mos-footer,.mos-home .mos-footer :where(h1,h2,h3,h4,h5,h6,p,span,strong,small,li,a,address){color:var(--mos-footer-text)!important}
.mos-home .mos-hero,.mos-home .mos-hero :where(h1,h2,h3,h4,h5,h6,p,span,strong,small,label){color:var(--mos-header-text)!important}
.mos-home .mos-chip{color:var(--mos-card-text)!important}
.mos-home .mos-quick-card,.mos-home .mos-quick-card :where(strong,span,small){color:var(--mos-card-text)!important}
.mos-home .mos-catch-prev,.mos-home .mos-catch-next,.mos-home .mos-catch-count,
.mos-calendar-full-badge{color:var(--mos-button-text)!important}
/* Elements corrected by the runtime contrast guard receive the exact computed color. */
.mos-auto-contrast{color:var(--mos-auto-text)!important}
.mos-auto-contrast :where(svg){fill:currentColor!important;stroke:currentColor!important}

/* Day3-28-10 Auto Contrast Engine Ver2 — WCAG AA runtime output */
.mos-ace-v2-text{color:var(--mos-ace-text)!important}
.mos-ace-v2-link{color:var(--mos-ace-link)!important;text-decoration-color:currentColor!important}
.mos-ace-v2-link:hover,.mos-ace-v2-link:focus-visible{color:var(--mos-ace-link)!important;filter:brightness(.92)}
.mos-ace-v2-button{color:var(--mos-ace-button-text)!important;border-color:var(--mos-ace-button-border)!important}
.mos-ace-v2-button :where(span,strong,small,b,i,em,svg,path,use){color:inherit!important;fill:currentColor!important;stroke:currentColor!important}
.mos-ace-v2-button:hover,.mos-ace-v2-button:focus-visible{background-color:var(--mos-ace-button-hover-bg)!important;color:var(--mos-ace-button-hover-text)!important}
.mos-ace-v2-form{color:var(--mos-ace-form-text)!important;caret-color:var(--mos-ace-form-text)!important}
.mos-ace-v2-form::placeholder{color:var(--mos-ace-placeholder)!important;opacity:1!important}
.mos-ace-v2-icon{color:var(--mos-ace-icon)!important;fill:currentColor!important;stroke:currentColor!important}
.mos-ace-v2-icon :where(path,circle,rect,line,polyline,polygon,use){fill:currentColor!important;stroke:currentColor!important}
/* Calendar navigation/status, contact links and messages are explicitly covered even when legacy CSS uses !important. */
:where(.mos-home,.mos-subpage,#mos-theme-preview) :where(.mos-calendar-prev,.mos-calendar-next,.mos-calendar-today,.mos-prev-month,.mos-next-month,[aria-label*="前月"],[aria-label*="翌月"]){color:var(--mos-ace-button-text)!important}
:where(.mos-home,.mos-subpage,#mos-theme-preview) :where(a[href^="tel:"],a[href^="mailto:"],a[href^="http"]):not(.mos-ace-v2-button){color:var(--mos-ace-link)!important}
:where(.mos-home,.mos-subpage,#mos-theme-preview) :where(.error,.notice-error,.mos-error,.success,.notice-success,.mos-success,.alert,.mos-alert){color:var(--mos-ace-text)!important}


/* Day3-28-11: calendar prev/next use their own solid AA-safe surfaces. */
:where(.mos-home,#mos-theme-preview) .mos-calendar-nav-fixed{
  color:#111827!important;
  background:#ffffff!important;
  border-color:#172033!important;
  text-shadow:none!important;
}
:where(.mos-home,#mos-theme-preview) .mos-calendar-nav-fixed:hover,
:where(.mos-home,#mos-theme-preview) .mos-calendar-nav-fixed:focus-visible{
  color:#07111c!important;
  background:#eaf6ff!important;
  border-color:#0878c9!important;
}

/* Day3-28-13: mobile hero image full-view adjustment */
@media(max-width:768px){.mos-home .mos-hero{background-color:var(--mos-header)!important;min-height:68vh!important}}

/* Day3-30-11: public calendar current-month button — fixed high contrast on every theme */
:where(.mos-home,.mos-subpage,.marineos-public-fullscreen,#mos-theme-preview)
.mos-public-calendar-nav .mos-calendar-today{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  background:#2563eb!important;
  background-image:none!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border:2px solid #93c5fd!important;
  box-shadow:0 8px 22px rgba(37,99,235,.38)!important;
  text-shadow:none!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  font-size:16px!important;
  line-height:1.2!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  position:relative!important;
  z-index:5!important;
}
:where(.mos-home,.mos-subpage,.marineos-public-fullscreen,#mos-theme-preview)
.mos-public-calendar-nav .mos-calendar-today:hover,
:where(.mos-home,.mos-subpage,.marineos-public-fullscreen,#mos-theme-preview)
.mos-public-calendar-nav .mos-calendar-today:focus-visible{
  background:#1d4ed8!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:#dbeafe!important;
  box-shadow:0 10px 26px rgba(37,99,235,.48)!important;
}
