@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@100..900&family=Noto+Sans+JP:wght@100..900&display=swap');

/* =========================================================
   Base
========================================================= */

html,
body {
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  color: #262626;
  font-size: 18px;
  line-height: 134%;
  background: #F4F3E1;
}

/* Keep theme wrappers full width */
body .wrap {
  position: relative;
  margin: 0;
  padding: 0;
  width: 100%;
}

@media (min-width: 1200px) {
  .wrap,
  .boxed-filter-bar {
    max-width: 100%;
  }
}

/* Background consistency */
#page,
.site,
.wrapper,
.site-content {
  background: #F4F3E1;
}

/* If a theme wrapper is clipping full-bleed sections, un-clip */
#page,
.site,
.site-content {
  overflow-x: hidden;
}

/* =========================================================
   Header / Nav
========================================================= */

#site-header.primary-header.standard #site-navigation .primary-menu li a {
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  font-weight: 400;
  letter-spacing: 0.02em; /* use em for letter-spacing */
  text-transform: none;
}

.primary-menu li.current_page_item {
  text-decoration: underline;
  text-underline-offset: 4px;
}

#site-header.primary-header.has-box-shadow {
  box-shadow: none;
}

#site-header.primary-header,
#site-header.primary-header.transparent.is-stuck {
  background-color: transparent;
}

#site-header.primary-header .wrap {
  padding: 0 30px;
}

#site-header.primary-header.standard #site-navigation .primary-menu>li>a {
	padding: 30px 0;
	top: -4px;
}


#site-header.primary-header.standard #site-navigation .primary-menu>li>a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* =========================================================
   Typography
========================================================= */

h1 {
  font-family: "Archivo", "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
}

h1.hero-header {
  width: min(100vw, 1000px);
  min-height: 50vh;
  margin: 40px auto;

  display: grid;
  place-items: center;
  text-align: center;
  padding: 30px 30px;
}

p a {
  color: #16B6AA !important;
}

p a:hover {
  color: #2ECEC2 !important;
}

p strong {
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  display: block;
  font-size: 1.2rem;
}

td {
    color: #262626;
}

a.cta-link {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    font-weight: bold;
    border: 1px solid #16B6AA;
    padding: 10px 12px 8px;
    border-radius: 4px;
	transition: all 100ms;
	}

a.cta-link:hover {
    border: 1px solid #16B6AA;
	background: #16B6AA;
	color: #F4F3E1;
	transition: all 100ms;
	}

/* =========================================================
   Blocks / Layout
========================================================= */

.wp-block-separator {
  border: none;
  border-bottom: 1px solid;
  margin: 0 auto 20px auto;
}

.wp-block-column.v-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.wp-block-columns {
  padding: 0 30px;
}

.wp-block-gallery.has-nested-images {
  --gallery-block--gutter-size: 20px;
}

.wp-block-image img {
	border-radius: 4px;	
}

figure.no-corner img {
	border-radius: 0 !important;
	overflow: hidden;
}

/* =========================================================
   Location section
========================================================= */

.location,
.location strong {
  background: #262626;
  color: #F4F3E1;
}

.location {
  margin: 0;
}

figure.location-map {
  padding: 60px 0 40px 0;
}

/* =========================================================
   Full-bleed image strip (FIXED)
   Goal: center the row, crop edges at viewport like your screenshot
========================================================= */

/* FULL BLEED + CROP */
.bleed-strip{
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  padding: 0 0 80px;
  position: relative;
}

/* TRUE CENTERING OF THE WHOLE ROW */
.bleed-strip__inner{
  display: flex;
  flex-wrap: nowrap;
  gap: 40px;

  width: max-content;        /* shrink-wrap to images */
  max-width: none;

  position: relative;
  left: 50%;
  transform: translateX(-50%); /* centers the row */
}

/* IMAGES */
.bleed-strip__inner img{
  height: 420px;
  width: auto;
  display: block;
  object-fit: cover;
	border-radius: 4px;
}

.ran-marquee {
  overflow: hidden;
  width: 100%;
  margin-bottom: 100px;
}

/* Kill WP paragraph spacing inside marquee */
.ran-marquee p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Track */
.ran-marquee__track {
  display: flex;
  width: max-content;
  will-change: transform;
	position: relative;

  /* Disable any CSS animation */
  animation: none !important;

  /* Guardrails against theme spacing */
  gap: 0 !important;
  padding: 0 !important;
  margin: 0 !important;

  /* Prevent whitespace issues */
  font-size: 0;
}

/* Sets */
.ran-marquee__set {
  display: inline-flex;
  align-items: flex-start;
  gap: 40px;
  flex: 0 0 auto;
  font-size: initial;
}

/* Seam spacing (ONLY here) */
.ran-marquee__set:first-child {
  padding-right: 40px;
}

/* Ensure duplicate set has no seam padding */
.ran-marquee__set[aria-hidden="true"] {
  padding-right: 0;
}

/* Images */
.ran-marquee__set figure {
  margin: 0;
  flex: 0 0 auto;
}

.ran-marquee__set img {
  display: block;
  width: auto;
  height: auto;
  max-height: 320px;
  border-radius: 4px;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .ran-marquee__track {
    transform: none !important;
  }
}

@keyframes ran-marquee-scroll {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(calc(-1 * var(--marquee-distance)), 0, 0);
  }
}

/* =========================================================
   Content padding overrides (theme specific)
========================================================= */

body.blog .site .site-content,
body.single.single-post .site .site-content,
body.search .site .site-content,
body.archive .site .site-content,
body.attachment .site .site-content,
body.page:not(.elementor-page) .site .site-content {
  padding: 0;
}

/* =========================================================
   Hero slider + overlay logo
========================================================= */

.hero-slider {
  position: relative;
}

.hero-slider .metaslider,
.hero-slider .metaslider .flexslider,
.hero-slider .metaslider .rslides_container {
  position: relative;
  z-index: 1;
}

.hero-slider .hero-logo {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.hero-slider .hero-logo svg,
.hero-slider .hero-logo img {
  width: min(45vw, 500px);
  height: auto;
}

/* =========================================================
   Image with bottom full-width logo overlay
========================================================= */

.image-with-bottom-logo {
  position: relative;
}

.image-with-bottom-logo .wp-block-image {
  margin: 0;
}

.image-with-bottom-logo .bottom-logo-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  padding: 0 30px 30px;
  box-sizing: border-box;
  z-index: 5;
  pointer-events: none;
}

.image-with-bottom-logo .bottom-logo-overlay svg,
.image-with-bottom-logo .bottom-logo-overlay img {
  width: 100%;
  height: auto;
  display: block;
}

/* =========================================================
   Footer
========================================================= */

.site-footer .site-info-wrap {
  padding: 10px 30px 30px 30px;
}

/* =========================================================
   Contact Form 7
========================================================= */

.wpcf7 {
  width: 50%;
}

/* =========================================================
   Responsive
========================================================= */

/* Mobile: stack columns */
@media (max-width: 768px) {
  .wp-block-columns {
    flex-direction: column;
  }

  /* Only flip the rows you mark */
  .wp-block-columns.stack-image-first > .wp-block-column:first-child { order: 2; }
  .wp-block-columns.stack-image-first > .wp-block-column:last-child  { order: 1; }

.bleed-strip{ overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .bleed-strip__inner{ gap: 20px; }
  .bleed-strip__inner img{ height: 200px; }
	
	.wp-block-columns {
    padding: 0 20px;
}
	.image-with-bottom-logo .bottom-logo-overlay {
    padding: 0 20px 20px;
}
	#site-header.primary-header .wrap {
    padding: 0 20px;
}
	figure.location-map {
  padding: 60px 0 0 0;
}
	#site-header.primary-header.standard #site-navigation .primary-menu>li>a {
    padding: 20px;
}
}

@media (max-width: 991px) {
  #site-header.primary-header #site-navigation .primary-menu {
    background-color: #F4F3E1;
    max-height: calc(100vh - 150px);
    overflow-y: auto;
  }

  #site-header.primary-header #site-navigation .primary-menu a {
    padding: 16px 20px;
  }

  .wpcf7 {
    width: 100%;
  }
}

@media (max-width: 1200px) {
    .site-footer .wrap {
        padding-left: 20px;
        padding-right: 20px;
    }
	.site-footer .site-info-wrap {
    padding: 10px 0 20px 0;
	}
}