/*
Theme Name: YAMATO SPACESHIP
Theme URI: https://yamatospaceship.com
Author: YAMATO SPACESHIP
Description: Custom block theme for yamatospaceship.com, built from the Claude Design handoff bundle ("ホームページデザイン再現依頼"). Reproduces the LP, service pages, Insights (articles) and Cost Simulator as a native WordPress block theme.
Version: 0.1.0
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: yamato-spaceship
*/

/* ==========================================================================
   YAMATO SPACESHIP — base + components
   Design tokens (colors/fonts/spacing) live in theme.json.
   This file holds structural/component CSS that theme.json cannot express:
   flex/grid layouts, clamp() fluid spacing, accordions, buttons, cards,
   the header/footer, and typography for post content (.entry-content).
   ========================================================================== */

/* ---- Reset-ish base -------------------------------------------------- */
* { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--wp--preset--color--ys-white);
	color: var(--wp--preset--color--ys-navy);
	-webkit-font-smoothing: antialiased;
	text-wrap: pretty;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--wp--preset--color--ys-gold); text-decoration: none; }
a:hover { color: var(--wp--preset--color--ys-gold-hover); }
:focus-visible { outline: 2px solid var(--wp--preset--color--ys-gold); outline-offset: 2px; }

/* ---- Layout utilities -------------------------------------------------- */
.ys-container {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: clamp(16px, 3vw, 32px);
}
.ys-container--article {
	width: 100%;
	max-width: 820px;
	margin-inline: auto;
	padding-inline: clamp(18px, 3vw, 32px);
}
.ys-section {
	padding-block: clamp(30px, 4.5vw, 72px);
}
.ys-section--tight { padding-block: clamp(24px, 3.5vw, 48px); }
.ys-section--hero { padding-block: clamp(34px, 5vw, 74px); }
.ys-section--navy { background: var(--wp--preset--color--ys-navy-deep); color: #fff; }
.ys-section--gray { background: var(--wp--preset--color--ys-bg-gray); }
.ys-section--white { background: #fff; }
.ys-section--testimonials { background: var(--wp--preset--color--ys-bg-gray-2); border-top: 1px solid var(--wp--preset--color--ys-border-2); }

.ys-eyebrow {
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 11px;
	letter-spacing: 0.32em;
	color: var(--wp--preset--color--ys-gold);
	margin-bottom: 10px;
}
.ys-section--navy .ys-eyebrow { color: var(--wp--preset--color--ys-gold-light); }

.ys-section-title {
	margin: 0 0 clamp(20px, 3vw, 38px);
	font-size: clamp(19px, 2.6vw, 31px);
	font-weight: 900;
	line-height: 1.5;
}
.ys-section-title--center {
	text-align: center;
	margin-inline: auto;
}
.ys-section-title-rule {
	width: 46px;
	height: 3px;
	background: var(--wp--preset--color--ys-gold);
	margin: 14px auto clamp(20px, 3vw, 40px);
}

/* ---- Buttons ------------------------------------------------------------ */
.ys-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 700;
	padding: 14px 24px;
	border-radius: 4px;
	white-space: nowrap;
	transition: background-color .15s, border-color .15s, color .15s;
}
.ys-btn img { width: 18px; height: 18px; object-fit: contain; }
.ys-btn--navy { background: var(--wp--preset--color--ys-navy); color: #fff; }
.ys-btn--navy:hover { background: #16305e; color: #fff; }
.ys-btn--gold { background: var(--wp--preset--color--ys-gold); color: #fff; }
.ys-btn--gold:hover { background: var(--wp--preset--color--ys-gold-hover); color: #fff; }
.ys-btn--line { background: #06c755; color: #fff; }
.ys-btn--line:hover { background: #05b34c; color: #fff; }
.ys-btn--outline {
	background: #fff;
	color: var(--wp--preset--color--ys-navy);
	border: 1px solid var(--wp--preset--color--ys-border);
}
.ys-btn--outline:hover { border-color: var(--wp--preset--color--ys-navy); color: var(--wp--preset--color--ys-navy); }
.ys-btn--outline-light {
	background: rgba(255,255,255,0.1);
	border: 1px solid rgba(255,255,255,0.32);
	color: #fff;
}
.ys-btn--outline-light:hover { background: rgba(255,255,255,0.18); color: #fff; }
.ys-btn--pill-sm { padding: 9px 16px; font-size: 11.5px; border-radius: 999px; } /* header + mobile-menu nav CTAs only */
.ys-btn--block { width: 100%; }

/* ---- Cards / badges ------------------------------------------------------ */
.ys-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--ys-border);
	border-radius: 6px;
}
.ys-badge {
	display: inline-block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--ys-gold);
	border: 1px solid #e6d3a4;
	border-radius: 2px;
	padding: 3px 8px;
}

/* ---- Site header ---------------------------------------------------------
   Implemented with plain markup (not the Navigation block) to reproduce the
   exact pixel layout from the design. Nav links are relative paths, editable
   in the Site Editor by editing parts/header.html directly.
   -------------------------------------------------------------------------- */
.ys-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 14px 32px 14px 22px;
	background: #fff;
	border-bottom: 1px solid var(--wp--preset--color--ys-border-2);
}
.ys-header__logo { display: flex; align-items: center; gap: 11px; }
.ys-header__logo img { height: 26px; width: auto; object-fit: contain; }

.ys-nav {
	display: none;
	align-items: center;
	gap: 26px;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: 500;
}
.ys-nav a { color: var(--wp--preset--color--ys-navy-nav); }
.ys-nav a.is-current {
	color: var(--wp--preset--color--ys-navy);
	font-weight: 700;
	border-bottom: 2px solid var(--wp--preset--color--ys-gold);
	padding-bottom: 3px;
}
.ys-header__cta { display: none; align-items: center; gap: 10px; }

.ys-mobile-menu { position: relative; }
.ys-mobile-menu summary {
	list-style: none;
	cursor: pointer;
	padding: 6px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.ys-mobile-menu summary::-webkit-details-marker { display: none; }
.ys-mobile-menu summary span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--wp--preset--color--ys-navy);
}
.ys-mobile-nav {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-bottom: 1px solid var(--wp--preset--color--ys-border-2);
	padding: 6px 32px 16px 24px;
}
.ys-mobile-nav a {
	color: var(--wp--preset--color--ys-navy-nav);
	font-size: 13.5px;
	font-weight: 500;
	padding: 13px 0;
	border-bottom: 1px solid var(--wp--preset--color--ys-border-2);
}
.ys-mobile-nav a.is-current { color: var(--wp--preset--color--ys-navy); font-weight: 700; }
.ys-mobile-nav__cta { display: flex; gap: 10px; margin-top: 14px; }
.ys-mobile-nav__cta .ys-btn { flex: 1; padding: 12px 8px; font-size: 12px; border-radius: 999px; }

@media (min-width: 701px) {
	.ys-nav { display: flex; }
	.ys-header__cta { display: flex; }
	.ys-mobile-menu { display: none; }
}
@media (max-width: 700px) {
	/* Close the <details> mobile menu whenever the viewport crosses back to desktop. */
	.ys-header { position: relative; }
}

/* ---- Site footer ----------------------------------------------------------
   Unified 4-column + QR-card footer (from the LP design) used on every page.
   -------------------------------------------------------------------------- */
.ys-footer {
	background: var(--wp--preset--color--ys-navy-deep);
	padding: 44px 32px 0;
}
.ys-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	gap: 44px;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}
.ys-footer__logo { flex: 0 0 auto; display: flex; align-items: center; }
.ys-footer__logo img { height: 30px; width: auto; object-fit: contain; margin-left: -2px; }
.ys-footer__contact { flex: 0 0 auto; display: flex; flex-direction: column; gap: 10px; }
.ys-footer__contact-title { font-size: 12.5px; font-weight: 700; color: #fff; }
.ys-footer__contact a {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 11.5px;
	color: rgba(255,255,255,0.72);
}
.ys-footer__contact a:hover { color: #fff; }
.ys-footer__contact img { width: 16px; height: 16px; object-fit: contain; }
.ys-footer__nav {
	flex: 1 1 460px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 28px;
}
.ys-footer__nav-col { display: flex; flex-direction: column; gap: 11px; }
.ys-footer__nav-col-title { font-size: 12.5px; font-weight: 700; color: #fff; margin-bottom: 2px; }
.ys-footer__nav-col a { font-size: 11.5px; color: rgba(255,255,255,0.72); }
.ys-footer__nav-col a:hover { color: #fff; }
.ys-footer__qr {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 16px;
	border: 1px solid rgba(255,255,255,0.2);
	border-radius: 4px;
	padding: 16px 18px;
	min-width: 210px;
}
.ys-footer__qr-text { display: flex; flex-direction: column; gap: 6px; }
.ys-footer__qr-text strong { font-size: 11.5px; font-weight: 500; color: #fff; line-height: 1.6; }
.ys-footer__qr-text span { font-size: 11px; color: rgba(255,255,255,0.65); }
.ys-footer__qr-code {
	width: 72px;
	height: 72px;
	flex: 0 0 auto;
	background: #fff;
	border-radius: 2px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--ys-navy);
	font-size: 9px;
	text-align: center;
	line-height: 1.3;
	padding: 4px;
}
.ys-footer__bottom {
	max-width: 1200px;
	margin: 36px auto 0;
	border-top: 1px solid rgba(255,255,255,0.14);
	padding: 16px 0 18px;
	text-align: center;
	font-size: 10.5px;
	color: rgba(255,255,255,0.55);
}

/* ---- Mobile sticky CTA bar (LP only; toggled by assets/js/sticky-cta.js) --- */
.ys-sticky-cta {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 50;
	background: var(--wp--preset--color--ys-navy-deep);
	padding: 10px 12px;
	display: none;
	flex-direction: column;
	gap: 8px;
	box-shadow: 0 -4px 14px rgba(0,0,0,0.18);
}
.ys-sticky-cta.is-visible { display: flex; }
.ys-sticky-cta .ys-btn { padding: 13px 14px; font-size: 13.5px; }
@media (min-width: 701px) {
	.ys-sticky-cta { display: none !important; }
}

/* ---- FAQ accordion (zero-JS, <details>/<summary>) -------------------------
   Used on Dubai Relocation / Company Setup / Real Estate / Support.
   -------------------------------------------------------------------------- */
.ys-faq { background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-radius: 6px; overflow: hidden; }
.ys-faq-item { border-bottom: 1px solid var(--wp--preset--color--ys-border-2); }
.ys-faq-item:last-child { border-bottom: none; }
.ys-faq-item summary {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	cursor: pointer;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--wp--preset--color--ys-navy);
	line-height: 1.7;
}
.ys-faq-item summary::-webkit-details-marker { display: none; }
.ys-faq-item summary::before {
	content: "Q";
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 17px;
	color: var(--wp--preset--color--ys-gold);
	line-height: 1;
}
.ys-faq-item summary::after {
	content: "+";
	margin-left: auto;
	flex: 0 0 auto;
	font-size: 18px;
	font-weight: 400;
	color: #9aa7bb;
}
.ys-faq-item[open] summary::after { content: "\2212"; color: var(--wp--preset--color--ys-gold); }
.ys-faq-item p {
	margin: 0;
	padding: 0 20px 20px 48px;
	font-size: 12.5px;
	color: var(--wp--preset--color--ys-muted);
	line-height: 2;
}

/* ---- Simple reason/flow accordions (LP mobile) — zero-JS ------------------ */
.ys-accordion-item { border-bottom: 1px solid var(--wp--preset--color--ys-border-3); }
.ys-accordion-item summary {
	list-style: none;
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 15px 2px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--ys-navy);
}
.ys-accordion-item summary::-webkit-details-marker { display: none; }
.ys-accordion-item summary::after {
	content: "";
	margin-left: auto;
	width: 8px;
	height: 8px;
	border-right: 1.5px solid #9aa7bb;
	border-bottom: 1.5px solid #9aa7bb;
	transform: rotate(-45deg);
	transition: transform .15s;
}
.ys-accordion-item[open] summary::after { transform: rotate(45deg); border-color: var(--wp--preset--color--ys-gold); }
.ys-accordion-item p { margin: 0; padding: 0 2px 18px 38px; font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.9; }

/* ==========================================================================
   Post content typography (.entry-content)
   Applies to BOTH the new Insight Article template chrome AND the 186
   existing posts (which are plain <h2>/<p>/<ul>/<table>/<img> with no
   special classes). Existing posts are left untouched — only the
   surrounding template + this CSS changes their appearance.
   Posts that already carry full inline styles (a handful of newer articles)
   are unaffected: inline styles always win over these rules.
   ========================================================================== */
.entry-content {
	font-size: 14px;
	line-height: 2.1;
	color: var(--wp--preset--color--ys-article-body);
}
.entry-content > * + * { margin-top: 1.3em; }
.entry-content h2 {
	margin: clamp(30px, 3.6vw, 46px) 0 16px;
	font-size: clamp(17px, 2vw, 23px);
	font-weight: 900;
	line-height: 1.6;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--wp--preset--color--ys-navy);
	color: var(--wp--preset--color--ys-navy);
}
.entry-content h3 {
	margin: 1.8em 0 .6em;
	font-size: 15px;
	font-weight: 700;
	color: var(--wp--preset--color--ys-navy);
}
.entry-content p { margin: 0; }
.entry-content ul,
.entry-content ol {
	margin: 0;
	padding-left: 19px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.entry-content li { line-height: 1.9; }
.entry-content a { text-decoration: underline; text-underline-offset: 2px; }
.entry-content img,
.entry-content figure { border-radius: 4px; }
.entry-content figure.alignnone,
.entry-content figure.aligncenter { margin: 1.6em auto; }

/* display:block + overflow-x:auto goes directly on the <table>, not a
   wrapper — most of the 186 existing articles have a bare <table> typed
   straight into the classic/paragraph editor with no wp-block-table
   wrapper around it, so a wrapper-based scroll rule (only) would leave
   those tables free to blow out the mobile layout. This works with or
   without a wrapper.

   width: max-content + max-width: 100% (not width: 100% + min-width) — the
   table's own box never exceeds the container (no page-level horizontal
   scroll on a ~360px phone), while its natural column widths are kept
   intact so wide content scrolls INSIDE the table via overflow-x instead
   of being force-squeezed to fit or blowing out the page. */
.entry-content table {
	display: block;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-collapse: collapse;
	width: max-content;
	max-width: 100%;
	font-size: 12.5px;
}
.entry-content table thead th {
	text-align: left;
	background: var(--wp--preset--color--ys-navy);
	color: #fff;
	font-weight: 700;
	padding: 13px 14px;
	white-space: nowrap;
}
.entry-content table td {
	padding: 13px 14px;
	border-bottom: 1px solid var(--wp--preset--color--ys-border);
	color: var(--wp--preset--color--ys-muted);
}
.entry-content table tr:nth-child(even) td { background: #f8fafc; }
.entry-content .wp-block-table {
	/* Belt-and-braces for the wrapped case; harmless no-op otherwise since
	   the table itself already scrolls. */
	max-width: 100%;
}

/* "この記事でわかること" callout box — our own pattern (patterns/article-key-points.php)
   uses .ys-article-callout. .yss-summary is dual-supported so articles
   generated by the separate yamato-article skill (which outputs that
   class directly) get the same box styling without any theme change. */
.ys-article-callout,
.yss-summary {
	background: var(--wp--preset--color--ys-bg-gray);
	border-left: 3px solid var(--wp--preset--color--ys-gold);
	padding: clamp(18px, 2.2vw, 26px);
}
.ys-article-callout__title { font-size: 13px; font-weight: 700; margin-bottom: 12px; }
.ys-article-callout ul,
.yss-summary ul {
	margin: 0; padding-left: 19px; display: flex; flex-direction: column; gap: 8px;
	font-size: 12.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.9;
}

/* Article end-of-post CTA box */
.ys-article-cta {
	background: var(--wp--preset--color--ys-navy-deep);
	border-radius: 6px;
	padding: clamp(22px, 2.6vw, 32px);
	text-align: center;
	color: #fff;
}
.ys-article-cta h2 { border-bottom: none; padding-bottom: 0; margin: 0 0 10px; color: #fff; font-size: clamp(16px, 1.9vw, 22px); }
.ys-article-cta p { color: rgba(255,255,255,0.75); font-size: 12.5px; line-height: 2; margin: 0 0 20px; }
.ys-article-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 11px; }

/* Disclaimer note (※...) */
.ys-article-disclaimer { font-size: 10.5px; color: var(--wp--preset--color--ys-faint); line-height: 1.9; }

/* ---- Cost Simulator (base scaffolding; full behaviour added in Phase 5) --- */
.ys-simulator-grid { display: grid; grid-template-columns: 1fr; gap: clamp(18px, 2.4vw, 32px); align-items: start; }
@media (min-width: 1001px) {
	.ys-simulator-grid { grid-template-columns: 1.55fr 1fr; }
	.ys-simulator-grid__result { position: sticky; top: 20px; }
}

/* ==========================================================================
   Link arrow (replaces the design's small PNG chevrons: crisp at any size,
   recolors with currentColor, zero extra requests).
   ========================================================================== */
.ys-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.ys-link-arrow svg { width: 20px; height: 8px; flex: 0 0 auto; transition: transform .15s; }
a:hover .ys-link-arrow svg,
.ys-link-arrow:hover svg { transform: translateX(3px); }

/* ==========================================================================
   LP — Phase 2 sections
   Each responsive-only section below ships as a *pair* of wrappers
   (`--mobile` / `--desktop`), toggled with a plain CSS media query at the
   700px breakpoint. This replaces the design prototype's JS-driven
   isMobile/isDesktop state with something that works with JS disabled and
   never flashes the wrong layout.
   ========================================================================== */

/* ---- Hero ---- */
.ys-hero { position: relative; background: #eef2f7; overflow: hidden; }
.ys-hero__media { position: absolute; inset: 0; }
.ys-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.ys-hero__gradient { position: absolute; inset: 0; pointer-events: none; }
.ys-hero__content { position: relative; }
.ys-hero h1 { margin: 0; font-weight: 700; color: var(--wp--preset--color--ys-navy); letter-spacing: 0.01em; }
.ys-hero p { color: #3d4d68; }
.ys-hero__actions { display: flex; flex-wrap: wrap; }
/* Row layout (icon | text-stack | chevron) comes from the base .ys-btn rule;
   the column stacking for the two lines of text lives on the inner <span>
   in the markup, not here. (Previously this rule wrongly forced the whole
   button into a column, stacking the icon above the text.) */
.ys-hero__cta-primary strong { font-size: 13.5px; font-weight: 700; letter-spacing: 0.02em; }
.ys-hero__cta-primary small { font-size: 9px; color: rgba(255,255,255,0.72); font-weight: 400; }
.ys-hero__cta-primary .ys-hero__chev { margin-left: auto; font-size: 14px; color: rgba(255,255,255,0.75); }

.ys-hero--mobile { display: block; min-height: 330px; }
.ys-hero--mobile .ys-hero__media img { object-position: 34% 46%; }
.ys-hero--mobile .ys-hero__gradient { background: linear-gradient(90deg,#fff 0%,#fff 34%,rgba(255,255,255,0.92) 46%,rgba(255,255,255,0.45) 66%,rgba(255,255,255,0.08) 88%,rgba(255,255,255,0) 100%); }
.ys-hero--mobile .ys-hero__content { padding: 26px 20px 24px; }
.ys-hero--mobile h1 { font-size: 20px; line-height: 1.7; }
.ys-hero--mobile p { margin: 20px 0 0; font-size: 11.5px; line-height: 1.95; }
.ys-hero--mobile .ys-hero__actions { flex-direction: column; gap: 11px; margin-top: 24px; }
.ys-hero--mobile .ys-btn { width: 100%; }
.ys-hero--mobile .ys-hero__cta-primary { padding: 13px 16px; box-shadow: 0 6px 16px rgba(13,33,73,0.22); }

.ys-hero--desktop { display: none; min-height: 400px; align-items: center; }
.ys-hero--desktop .ys-hero__media { inset: 0 0 0 34%; }
.ys-hero--desktop .ys-hero__media img { object-position: 60% 40%; }
.ys-hero--desktop .ys-hero__gradient { background: linear-gradient(90deg,#fff 0%,#fff 30%,rgba(255,255,255,0.92) 42%,rgba(255,255,255,0.55) 52%,rgba(255,255,255,0) 66%); }
.ys-hero--desktop .ys-hero__content { width: 100%; max-width: 1200px; margin: 0 auto; padding: 54px 32px; }
.ys-hero--desktop h1 { font-size: clamp(26px, 3.4vw, 41px); line-height: 1.5; max-width: 15em; }
.ys-hero--desktop p { margin: 26px 0 0; font-size: 15px; line-height: 1.9; }
.ys-hero--desktop .ys-hero__actions { gap: 14px; margin-top: 34px; }
.ys-hero--desktop .ys-hero__cta-primary { padding: 14px 20px; min-width: 250px; box-shadow: 0 6px 18px rgba(13,33,73,0.22); }
.ys-hero--desktop .ys-hero__cta-primary strong { font-size: 14.5px; }
.ys-hero--desktop .ys-btn--outline { min-width: 210px; padding: 14px 30px; }

@media (min-width: 701px) {
	.ys-hero--mobile { display: none; }
	.ys-hero--desktop { display: flex; }
}

/* ---- Trust bar ---- */
.ys-trustbar { background: var(--wp--preset--color--ys-navy-bar); }
.ys-trustbar__icon { width: 24px; height: 24px; object-fit: contain; filter: brightness(0) invert(1); opacity: .92; }

.ys-trustbar--mobile { display: flex; flex-direction: column; padding: 6px 16px 10px; }
.ys-trustbar--mobile a {
	display: flex; align-items: center; gap: 13px; padding: 13px 4px;
	border-bottom: 1px solid rgba(255,255,255,0.14);
}
.ys-trustbar--mobile a:last-child { border-bottom: none; }
.ys-trustbar--mobile .ys-trustbar__text { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.ys-trustbar--mobile .ys-trustbar__title { font-size: 12.5px; font-weight: 500; color: #fff; }
.ys-trustbar--mobile .ys-trustbar__desc { font-size: 10.5px; color: rgba(255,255,255,0.6); }
.ys-trustbar--mobile .ys-trustbar__chev { color: rgba(255,255,255,0.55); font-size: 15px; line-height: 1; }

.ys-trustbar--desktop { display: none; padding: 20px 32px; }
.ys-trustbar--desktop .ys-trustbar__grid {
	max-width: 1200px; margin: 0 auto;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}
.ys-trustbar--desktop .ys-trustbar__item {
	display: flex; align-items: center; gap: 12px; padding: 8px 20px;
	border-right: 1px solid rgba(255,255,255,0.16);
}
.ys-trustbar--desktop .ys-trustbar__item:last-child { border-right: none; }
.ys-trustbar--desktop .ys-trustbar__title { font-size: 12.5px; font-weight: 500; color: #fff; }
.ys-trustbar--desktop .ys-trustbar__desc { font-size: 10.5px; color: rgba(255,255,255,0.62); margin-top: 3px; }

@media (min-width: 701px) {
	.ys-trustbar--mobile { display: none; }
	.ys-trustbar--desktop { display: block; }
}

/* ---- Service cards ("あなたの目的から選ぶ") ---- */
.ys-services--mobile { display: flex; flex-direction: column; gap: 12px; }
.ys-service-row {
	display: flex; align-items: center; gap: 14px;
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border);
	border-radius: 4px; box-shadow: 0 2px 8px rgba(13,33,73,0.05);
	padding: 10px 14px 10px 10px;
}
.ys-service-row__img { flex: 0 0 auto; width: 74px; height: 56px; border-radius: 3px; overflow: hidden; }
.ys-service-row__img img { width: 100%; height: 100%; object-fit: cover; }
.ys-service-row__body { flex: 1; display: flex; flex-direction: column; gap: 7px; }
.ys-service-row__title { font-size: 13px; font-weight: 700; color: var(--wp--preset--color--ys-navy); }
.ys-service-row__link { font-size: 11px; color: var(--wp--preset--color--ys-gold); }

.ys-services--desktop { display: none; grid-template-columns: repeat(auto-fit, minmax(228px, 1fr)); gap: 22px; }
.ys-service-card {
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-radius: 5px;
	box-shadow: 0 4px 14px rgba(13,33,73,0.06); overflow: hidden; display: flex; flex-direction: column;
}
.ys-service-card__img { position: relative; height: 128px; }
.ys-service-card__img img { width: 100%; height: 100%; object-fit: cover; }
.ys-service-card__badge {
	display: flex; justify-content: center; margin-top: -22px; position: relative; z-index: 2;
}
.ys-service-card__badge span {
	width: 44px; height: 44px; border-radius: 50%; background: #fff;
	box-shadow: 0 2px 8px rgba(13,33,73,0.14); display: flex; align-items: center; justify-content: center;
}
.ys-service-card__badge img { width: 20px; height: 20px; object-fit: contain; }
.ys-service-card__body {
	padding: 14px 20px 20px; text-align: center; display: flex; flex-direction: column; gap: 10px; flex: 1;
}
.ys-service-card__title { margin: 0; font-size: 15px; font-weight: 700; color: var(--wp--preset--color--ys-navy); }
.ys-service-card__text { margin: 0; font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.85; }
.ys-service-card__link {
	display: flex; align-items: center; justify-content: center; gap: 10px;
	font-size: 11.5px; font-weight: 500; color: var(--wp--preset--color--ys-gold);
	margin-top: auto; padding-top: 8px;
}

@media (min-width: 701px) {
	.ys-services--mobile { display: none; }
	.ys-services--desktop { display: grid; }
}

/* ---- Reasons ("選ばれる理由") ---- */
.ys-reasons--mobile { display: flex; flex-direction: column; }
.ys-reasons--mobile .ys-accordion-item summary img { width: 24px; height: 24px; object-fit: contain; }

.ys-reasons--desktop { display: none; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; }
.ys-reason {
	padding: 6px 22px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px;
	border-right: 1px solid var(--wp--preset--color--ys-border-3);
}
.ys-reason:last-child { border-right: none; }
.ys-reason img { width: 34px; height: 34px; object-fit: contain; }
.ys-reason h3 { margin: 0; font-size: 13.5px; font-weight: 700; color: var(--wp--preset--color--ys-navy); }
.ys-reason p { margin: 0; font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.9; }

@media (min-width: 701px) {
	.ys-reasons--mobile { display: none; }
	.ys-reasons--desktop { display: grid; }
}

/* ---- Flow ("サポートの流れ") ---- */
.ys-flow-step { flex: 1 1 0; min-width: 0; text-align: center; display: flex; flex-direction: column; align-items: center; }
.ys-flow-step img { object-fit: contain; }
.ys-flow-step__num { font-family: var(--wp--preset--font-family--cormorant); font-weight: 500; color: var(--wp--preset--color--ys-gold); }
.ys-flow-step__title { font-weight: 700; color: var(--wp--preset--color--ys-navy); }
.ys-flow-arrow { flex: 0 0 auto; color: #c9ab6c; font-size: 15px; line-height: 1; }

.ys-flow--mobile { display: block; }
.ys-flow--mobile .ys-flow-row { display: flex; align-items: flex-start; gap: 2px; }
.ys-flow--mobile .ys-flow-step { gap: 8px; }
.ys-flow--mobile .ys-flow-step p { display: none; } /* mobile shows title only, no description */
.ys-flow--mobile .ys-flow-step img { width: 28px; height: 28px; }
.ys-flow--mobile .ys-flow-step__num { font-size: 9.5px; letter-spacing: 0.08em; }
.ys-flow--mobile .ys-flow-step__title { font-size: 11.5px; line-height: 1.5; }
.ys-flow--mobile .ys-flow-arrow { padding: 26px 2px 0; }
/* <summary> is placed first in the DOM (semantically required) but
   flex `order` renders it after the collapsible extra row visually — the
   "詳しい流れを見る" button reads correctly below STEP 4-6, matching the
   design, without needing any JS to reorder it. */
.ys-flow--mobile details.ys-flow-more { display: flex; flex-direction: column; margin-top: 0; }
.ys-flow--mobile .ys-flow-more .ys-flow-row--extra { order: 1; }
.ys-flow--mobile .ys-flow-more[open] .ys-flow-row--extra { margin-top: 26px; padding-top: 22px; border-top: 1px solid #eef1f5; }
.ys-flow--mobile .ys-flow-more summary {
	order: 2;
	list-style: none; width: 100%; display: flex; align-items: center; justify-content: center; gap: 12px;
	margin-top: 24px; background: #fff; border: 1px solid var(--wp--preset--color--ys-border-3); border-radius: 3px;
	padding: 12px 20px; font-size: 12px; font-weight: 500; color: var(--wp--preset--color--ys-navy); cursor: pointer;
}
.ys-flow--mobile .ys-flow-more summary::-webkit-details-marker { display: none; }
.ys-flow--mobile .ys-flow-more summary .label-open { display: none; }
.ys-flow--mobile .ys-flow-more[open] summary .label-closed { display: none; }
.ys-flow--mobile .ys-flow-more[open] summary .label-open { display: inline-flex; }

.ys-flow--desktop { display: none; align-items: flex-start; justify-content: center; flex-wrap: wrap; gap: 4px; }
.ys-flow--desktop .ys-flow-step { max-width: 180px; gap: 10px; }
.ys-flow--desktop .ys-flow-step img { height: 32px; }
.ys-flow--desktop .ys-flow-step__num { font-size: 10.5px; letter-spacing: 0.1em; }
.ys-flow--desktop .ys-flow-step__title { font-size: 12.5px; }
.ys-flow--desktop .ys-flow-step p { margin: 0; font-size: 11px; color: var(--wp--preset--color--ys-muted); line-height: 1.85; }
.ys-flow--desktop .ys-flow-arrow { padding: 8px 1px 0; }

@media (min-width: 701px) {
	.ys-flow--mobile { display: none; }
	.ys-flow--desktop { display: flex; }
}

/* ---- Testimonials ---- */
.ys-testimonial {
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-radius: 5px;
	box-shadow: 0 3px 12px rgba(13,33,73,0.05); display: flex; flex-direction: column; gap: 14px;
}
.ys-testimonial__head { display: flex; align-items: center; gap: 14px; }
.ys-testimonial__avatar {
	width: 48px; height: 48px; flex: 0 0 auto; border-radius: 50%; background: #e7ecf3;
	display: flex; align-items: flex-end; justify-content: center; overflow: hidden;
}
.ys-testimonial__avatar img { width: 34px; height: 34px; object-fit: contain; object-position: bottom; }
.ys-testimonial__tag {
	align-self: flex-start; background: #eef1f6; color: #41536f; font-size: 10px; padding: 4px 9px; border-radius: 3px;
}
.ys-testimonial__title { margin: 0; font-size: 14px; font-weight: 700; color: var(--wp--preset--color--ys-navy); line-height: 1.6; }
.ys-testimonial__body { margin: 0; font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.95; }
.ys-testimonial__meta { border-top: 1px solid var(--wp--preset--color--ys-border-2); padding-top: 12px; font-size: 11px; color: var(--wp--preset--color--ys-gold); }

.ys-testimonials--mobile { display: flex; flex-direction: column; }
.ys-testimonials--mobile .ys-testimonial { padding: 18px 18px 16px; }
/* Same flex-order trick as .ys-flow-more: <summary> sits first in the DOM
   but renders after the revealed extra cards. */
.ys-testimonials--mobile .ys-testimonial-more { display: flex; flex-direction: column; margin-top: 0; }
.ys-testimonials--mobile .ys-testimonial-more__extra { order: 1; display: flex; flex-direction: column; gap: 14px; }
.ys-testimonials--mobile .ys-testimonial-more[open] .ys-testimonial-more__extra { margin-top: 14px; }
.ys-testimonials--mobile .ys-testimonial-more summary {
	order: 2;
	list-style: none; width: 100%; display: flex; align-items: center; justify-content: center; gap: 12px;
	margin-top: 22px; background: #fff; border: 1px solid var(--wp--preset--color--ys-border-3); border-radius: 3px;
	padding: 13px 20px; font-size: 12px; font-weight: 500; color: var(--wp--preset--color--ys-navy); cursor: pointer;
}
.ys-testimonials--mobile .ys-testimonial-more summary::-webkit-details-marker { display: none; }
.ys-testimonials--mobile .ys-testimonial-more summary .label-open { display: none; }
.ys-testimonials--mobile .ys-testimonial-more[open] summary .label-closed { display: none; }
.ys-testimonials--mobile .ys-testimonial-more[open] summary .label-open { display: inline-flex; }

.ys-testimonials--desktop { display: none; }
.ys-testimonials--desktop .ys-testimonial-grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 22px;
}
.ys-testimonials--desktop .ys-testimonial { padding: 20px 22px; }
.ys-testimonials--desktop .ys-testimonial__head { align-items: center; }
.ys-testimonials--desktop .ys-testimonial-cta { display: flex; justify-content: center; margin-top: 30px; }

@media (min-width: 701px) {
	.ys-testimonials--mobile { display: none; }
	.ys-testimonials--desktop { display: block; }
}

/* ---- CTA band ---- */
.ys-cta-band { position: relative; background: #fff; border-top: 1px solid var(--wp--preset--color--ys-border); padding: 46px 32px; overflow: hidden; } /* padding was missing entirely — this is what made the left/right gutters disappear */
.ys-cta-band__watermark { position: absolute; right: 2%; bottom: -4px; width: 420px; max-width: 45%; opacity: 0.13; pointer-events: none; }
.ys-cta-band__inner {
	position: relative; max-width: 1200px; margin: 0 auto;
	display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap;
}
.ys-cta-band h2 { margin: 0; font-size: clamp(21px, 2.4vw, 28px); font-weight: 700; line-height: 1.55; color: var(--wp--preset--color--ys-navy); flex: 1 1 340px; min-width: 280px; }
.ys-cta-band p { margin: 18px 0 0; font-size: 12.5px; color: #5c6c86; line-height: 1.9; }
.ys-cta-band__actions { flex: 0 1 460px; display: flex; gap: 16px; flex-wrap: wrap; }
.ys-cta-band__actions .ys-btn {
	flex: 1 1 190px;
	min-width: 0; /* let the item actually shrink instead of clamping to its nowrap content width */
	border-radius: 4px;
	padding: 16px 18px;
	justify-content: flex-start;
	gap: 14px;
	white-space: normal; /* override .ys-btn's base nowrap so the subtext can wrap instead of overflowing and getting clipped */
}
.ys-cta-band__actions .ys-btn > span { flex: 1 1 auto; min-width: 0; }
.ys-cta-band__actions .ys-btn strong { display: block; font-size: 14.5px; font-weight: 700; }
.ys-cta-band__actions .ys-btn small { display: block; font-size: 10px; font-weight: 400; margin-top: 4px; line-height: 1.5; word-break: keep-all; overflow-wrap: break-word; }
.ys-cta-band__actions .ys-btn--line img { width: 38px; height: 38px; } /* line-badge.png already includes its own white circle */
.ys-cta-band__actions .ys-btn--outline { border-color: var(--wp--preset--color--ys-navy); color: var(--wp--preset--color--ys-navy); }
.ys-cta-band__actions .ys-btn--outline small { color: var(--wp--preset--color--ys-muted); }

/* ---- Mobile sticky-CTA bottom spacer (LP only; keeps the fixed bar from
   covering the footer once the page is scrolled all the way down) ---- */
.ys-mobile-cta-spacer { display: none; }
@media (max-width: 700px) {
	.ys-mobile-cta-spacer { display: block; height: 118px; }
}

/* ==========================================================================
   Phase 3 — subpage components
   Shared by the 5 service pages (Dubai Relocation / Company Setup /
   Real Estate / Support / About). Kept generic so the same classes serve
   all five rather than one bespoke component per page.
   ========================================================================== */

/* Pill radius, decoupled from .ys-btn--pill-sm's smaller size — used by
   subpage hero CTAs and the closing CTA section (both pill-shaped in the
   original design, unlike the LP's 4px-radius hero/CTA-band buttons). */
.ys-btn--pill { border-radius: 999px; }

/* ---- Page hero (dark photo hero used at the top of every subpage) ------- */
.ys-page-hero { position: relative; background: var(--wp--preset--color--ys-navy-deep); overflow: hidden; }
.ys-page-hero__media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ys-page-hero__gradient { position: absolute; inset: 0; }
.ys-page-hero__inner {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(30px, 4.4vw, 66px) clamp(18px, 3vw, 32px) clamp(34px, 4.6vw, 72px);
}
.ys-page-hero__breadcrumb {
	display: flex; align-items: center; gap: 8px;
	font-size: 10.5px; color: rgba(255,255,255,0.6);
	margin-bottom: clamp(16px, 2.5vw, 26px);
}
.ys-page-hero__breadcrumb a { color: rgba(255,255,255,0.6); }
.ys-page-hero__breadcrumb a:hover { color: #fff; }
.ys-page-hero__breadcrumb span[aria-current] { color: rgba(255,255,255,0.9); }
.ys-page-hero__eyebrow {
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: clamp(11px, 1.2vw, 13px);
	letter-spacing: 0.34em;
	color: var(--wp--preset--color--ys-gold-light);
	margin-bottom: 13px;
}
.ys-page-hero h1 {
	margin: 0 0 clamp(13px, 1.8vw, 18px);
	font-size: clamp(24px, 4vw, 44px);
	font-weight: 900;
	line-height: 1.36;
	color: #fff;
}
.ys-page-hero p {
	margin: 0;
	max-width: 620px;
	font-size: clamp(12px, 1.1vw, 14.5px);
	color: rgba(255,255,255,0.82);
	line-height: 2;
}
.ys-page-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(20px, 3vw, 30px); }
.ys-page-hero__actions .ys-btn { padding: 14px 24px; font-size: 13px; }
.ys-page-hero__actions .ys-btn--line img { width: 20px; height: 20px; }

/* ---- Feature card grid (icon + title + text, optional checklist or price
   footer) — reused for: WHY DUBAI / WHY DUBAI PROPERTY / FREEZONE OR
   MAINLAND / LICENSE / NETWORK. ---- */
.ys-feature-grid { display: grid; gap: clamp(14px, 2vw, 22px); }
.ys-feature-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--ys-border);
	border-radius: 6px;
	padding: clamp(20px, 2.4vw, 30px);
	display: flex;
	flex-direction: column;
	gap: 13px;
}
.ys-feature-card__head { display: flex; align-items: center; gap: 11px; }
.ys-feature-card__head img { width: 24px; height: 24px; object-fit: contain; flex: 0 0 auto; }
.ys-feature-card__head h3 { margin: 0; font-size: 15.5px; font-weight: 700; }
.ys-feature-card p { margin: 0; font-size: 12.5px; color: var(--wp--preset--color--ys-muted); line-height: 2; }
.ys-feature-card__checklist {
	display: flex; flex-direction: column; gap: 9px;
	border-top: 1px dashed #e0e5ee; padding-top: 14px;
}
.ys-checklist-item { display: flex; gap: 9px; font-size: 12px; color: var(--wp--preset--color--ys-body); line-height: 1.8; }
.ys-checklist-item__mark { font-weight: 700; flex: 0 0 auto; }
.ys-checklist-item__mark--ok { color: var(--wp--preset--color--ys-gold); }
.ys-checklist-item__mark--caution { color: var(--wp--preset--color--ys-faint); }
.ys-feature-card__eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: var(--wp--preset--color--ys-faint); }
.ys-feature-card__big { font-size: 22px; font-weight: 900; letter-spacing: 0.02em; }

/* Price footer, shared by visa-option cards and package cards */
.ys-feature-card__price {
	margin-top: auto;
	border-top: 1px dashed #e0e5ee;
	padding-top: 12px;
}
.ys-feature-card__price-label { font-size: 10.5px; color: var(--wp--preset--color--ys-faint); letter-spacing: 0.06em; }
.ys-feature-card__price-value { font-size: 17px; font-weight: 900; color: var(--wp--preset--color--ys-navy); letter-spacing: 0.01em; }
.ys-feature-card__price-note { font-size: 11.5px; font-weight: 500; color: var(--wp--preset--color--ys-muted); }

/* Package cards (Company Setup) — same shell, plus a highlighted state */
.ys-package-card { position: relative; }
.ys-package-card--highlight { border: 2px solid var(--wp--preset--color--ys-gold); }
.ys-package-card__badge {
	position: absolute; top: -11px; left: 20px;
	background: var(--wp--preset--color--ys-gold); color: #fff;
	font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
	padding: 4px 11px; border-radius: 2px;
}
.ys-package-card h3 { margin: 0; font-size: 15.5px; font-weight: 700; }
.ys-package-card__price { margin-top: auto; border-top: 1px dashed #e0e5ee; padding-top: 13px; }
.ys-package-card__price-label { font-size: 10.5px; color: var(--wp--preset--color--ys-faint); letter-spacing: 0.06em; }
.ys-package-card__price-value { font-size: 19px; font-weight: 900; }
.ys-package-card__price-note { font-size: 11.5px; color: var(--wp--preset--color--ys-muted); }

/* ---- Process steps (numbered circle timeline) ---------------------------- */
.ys-process-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,300px),1fr)); gap: clamp(14px, 2vw, 22px); }
.ys-process-step { display: flex; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--wp--preset--color--ys-border-2); }
.ys-process-step__num {
	flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
	background: var(--wp--preset--color--ys-navy); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 12.5px; font-weight: 700;
}
.ys-process-step--gold .ys-process-step__num { background: var(--wp--preset--color--ys-gold); }
.ys-process-step h3 { margin: 0 0 6px; font-size: 14.5px; font-weight: 700; }
.ys-process-step p { margin: 0; font-size: 12px; color: var(--wp--preset--color--ys-muted); line-height: 1.95; }

/* ---- Property listings (Real Estate — horizontal scroll cards) ----------- */
.ys-listings-hint { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 11px; letter-spacing: 0.08em; color: var(--wp--preset--color--ys-faint); }
.ys-listings-hint span:last-child { width: 26px; height: 1px; background: var(--wp--preset--color--ys-gold); }
.ys-listings {
	display: flex; gap: clamp(14px, 2vw, 20px);
	overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
	padding-bottom: 14px;
	margin-right: calc(-1 * clamp(18px, 3vw, 32px));
	padding-right: clamp(18px, 3vw, 32px);
}
.ys-listing-card {
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-radius: 6px;
	overflow: hidden; display: flex; flex-direction: column;
	flex: 0 0 clamp(258px, 80vw, 300px); scroll-snap-align: start;
}
.ys-listing-card__img { position: relative; aspect-ratio: 4/3; background: #e7ebf2; }
.ys-listing-card__img img { width: 100%; height: 100%; object-fit: cover; }
/* No real listing photos exist yet — a plain placeholder tile instead of
   borrowing an unrelated stock photo from elsewhere in the design bundle. */
.ys-listing-card__img:not(:has(img))::after {
	content: "物件写真\A準備中";
	white-space: pre;
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	text-align: center;
	font-size: 11px; line-height: 1.7; color: var(--wp--preset--color--ys-faint);
}
.ys-listing-card__body { padding: 17px 18px 20px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.ys-listing-card__tags { display: flex; align-items: center; gap: 9px; }
.ys-listing-card__area { font-size: 11.5px; color: var(--wp--preset--color--ys-muted); }
.ys-listing-card__price { font-size: 19px; font-weight: 900; letter-spacing: 0.01em; }
.ys-listing-card__desc { font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.9; }
.ys-listing-card__yield {
	margin-top: auto; border-top: 1px dashed #e0e5ee; padding-top: 11px;
	display: flex; justify-content: space-between; font-size: 11.5px;
}
.ys-listing-card__yield-value { font-weight: 700; color: var(--wp--preset--color--ys-navy); }

/* ---- Simple content table (Real Estate cost breakdown) -------------------- */
.ys-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ys-table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 12.5px; }
.ys-table th { text-align: left; background: var(--wp--preset--color--ys-navy); color: #fff; font-weight: 700; padding: 13px 14px; }
.ys-table td { padding: 13px 14px; border-bottom: 1px solid var(--wp--preset--color--ys-border); color: var(--wp--preset--color--ys-muted); }
.ys-table td:first-child { font-weight: 700; color: var(--wp--preset--color--ys-body); }
.ys-table tr:nth-child(even) td { background: #f8fafc; }

/* ---- Representative profile (About) --------------------------------------- */
.ys-profile { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%,260px),1fr)); gap: clamp(18px, 2.6vw, 36px); align-items: start; }
.ys-profile__photo { position: relative; aspect-ratio: 4/5; max-width: 340px; background: #e7ebf2; border-radius: 6px; overflow: hidden; }
.ys-profile__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ys-profile__name { font-size: clamp(18px, 2.2vw, 24px); font-weight: 900; line-height: 1.4; }
.ys-profile__name-ja { font-size: 12.5px; color: var(--wp--preset--color--ys-muted); margin-top: 4px; }
.ys-profile__bio { margin: 14px 0 0; font-size: 13px; color: var(--wp--preset--color--ys-muted); line-height: 2.1; }
.ys-profile__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ys-profile__tag { font-size: 11.5px; font-weight: 500; color: var(--wp--preset--color--ys-navy-nav); background: #fff; border: 1px solid var(--wp--preset--color--ys-border-3); border-radius: 999px; padding: 8px 15px; }

/* ---- Company info definition list (About) --------------------------------- */
.ys-info-list { margin: 0; display: grid; grid-template-columns: minmax(120px,180px) 1fr; border-top: 1px solid var(--wp--preset--color--ys-border); }
.ys-info-list dt { padding: 16px 12px 16px 0; border-bottom: 1px solid var(--wp--preset--color--ys-border-2); font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--ys-navy); }
.ys-info-list dd { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--wp--preset--color--ys-border-2); font-size: 12.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.95; }

/* ---- FAQ section width helper (FAQ blocks are narrower than the page) ---- */
.ys-container--narrow { max-width: 840px; margin-inline: auto; padding-inline: clamp(18px, 3vw, 32px); }

/* ---- Closing CTA (centered, navy, pill buttons) — every subpage ends with
   one of these. ---- */
.ys-page-cta { background: var(--wp--preset--color--ys-navy-deep); padding: clamp(38px, 5vw, 76px) clamp(18px, 3vw, 32px); text-align: center; }
.ys-page-cta__inner { max-width: 760px; margin: 0 auto; }
.ys-page-cta h2 { margin: 0 0 14px; font-size: clamp(19px, 2.6vw, 31px); font-weight: 900; color: #fff; line-height: 1.55; }
.ys-page-cta p { margin: 0 0 clamp(22px, 3vw, 32px); font-size: 12.5px; color: rgba(255,255,255,0.75); line-height: 2; }
.ys-page-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ys-page-cta__actions .ys-btn { padding: 15px 28px; font-size: 13.5px; }
.ys-page-cta__actions .ys-btn--line img { width: 22px; height: 22px; }
.ys-page-cta__actions .ys-btn--outline { border: none; }

/* ==========================================================================
   Phase 4 — Insight Article (single.html) + Insights listing (page-blog.html
   / archive.html)
   ========================================================================== */

/* ---- Article hero (solid navy, no photo — unlike the subpage hero) ------ */
.ys-article-hero { background: var(--wp--preset--color--ys-navy-deep); padding: clamp(26px, 3.6vw, 52px) clamp(18px, 3vw, 32px); }
.ys-article-hero__breadcrumb { margin: 0 0 clamp(16px, 2.5vw, 24px); flex-wrap: wrap; }
.ys-article-hero__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.ys-article-hero__meta .wp-block-post-terms {
	font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
	color: var(--wp--preset--color--ys-navy-deep); background: var(--wp--preset--color--ys-gold-light);
	border-radius: 2px; padding: 4px 9px;
}
.ys-article-hero__meta .wp-block-post-terms a { color: inherit; }
.ys-article-hero__meta .wp-block-post-date {
	font-family: var(--wp--preset--font-family--cormorant);
	font-size: 12px; color: rgba(255,255,255,0.6); letter-spacing: 0.06em;
}
.ys-article-hero .wp-block-post-title {
	margin: 0; font-size: clamp(22px, 3.2vw, 36px); font-weight: 900; line-height: 1.5; color: #fff;
}

/* ---- Featured image + back-to-list link ---------------------------------- */
.ys-article-featured { margin-top: clamp(22px, 3vw, 36px) !important; }
.ys-article-featured img { width: 100%; display: block; object-fit: cover; }
.ys-article-back {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 12.5px; font-weight: 700; color: var(--wp--preset--color--ys-navy);
	margin: clamp(24px, 3vw, 36px) 0 clamp(34px, 4.5vw, 64px);
}
.ys-article-back:hover { color: var(--wp--preset--color--ys-gold); }

/* ---- Insights hero (listing + category archives) -------------------------- */
.ys-insights-hero { background: var(--wp--preset--color--ys-navy-deep); padding: clamp(28px, 4vw, 58px) clamp(18px, 3vw, 32px); }
.ys-insights-hero__breadcrumb { margin: 0 0 clamp(16px, 2.5vw, 26px); }
.ys-insights-hero h1 { margin: 0 0 14px; font-size: clamp(23px, 3.4vw, 38px); font-weight: 900; line-height: 1.4; color: #fff; }
.ys-insights-hero p { margin: 0; max-width: 640px; font-size: clamp(12px, 1.1vw, 14px); color: rgba(255,255,255,0.8); line-height: 2; }

/* ---- Category filter chips (link to real category archives — no JS) ------ */
.ys-insights-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(20px, 3vw, 32px); }
.ys-insights-filters a {
	font-size: 12px; font-weight: 500; padding: 9px 17px; border-radius: 999px;
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border-3); color: var(--wp--preset--color--ys-navy-nav);
}
.ys-insights-filters a:hover { border-color: var(--wp--preset--color--ys-navy); color: var(--wp--preset--color--ys-navy); }
.ys-insights-filters a.is-current { background: var(--wp--preset--color--ys-navy); border-color: var(--wp--preset--color--ys-navy); color: #fff; }

/* ---- Post card grid (core/query + core/post-template) --------------------- */
.ys-insights-grid.wp-block-post-template {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 272px), 1fr));
	gap: clamp(14px, 2vw, 22px);
	list-style: none; margin: 0; padding: 0;
}
/* Each post-template item is a bare <li>; the actual card is the wp:group
   nested inside it (className ys-insights-card) — stretch the <li> so that
   inner card can fill the full row height. */
.ys-insights-grid.wp-block-post-template > li { margin: 0; padding: 0; display: flex; }
.ys-insights-card {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-radius: 6px;
	overflow: hidden; color: var(--wp--preset--color--ys-navy);
	width: 100%;
}
.ys-insights-card:hover { border-color: var(--wp--preset--color--ys-gold); }
.ys-insights-card .wp-block-post-featured-image {
	display: block; margin: 0; aspect-ratio: 16/9; background: #dde3ec; overflow: hidden;
}
.ys-insights-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ys-insights-card__body { display: flex; flex-direction: column; gap: 9px; padding: 17px 18px 20px; flex: 1; }
.ys-insights-card .wp-block-post-terms {
	display: inline-block; align-self: flex-start;
	font-size: 10px; font-weight: 700; letter-spacing: 0.08em; color: var(--wp--preset--color--ys-gold);
	border: 1px solid #e6d3a4; border-radius: 2px; padding: 3px 8px;
}
.ys-insights-card .wp-block-post-terms a { color: inherit; }
.ys-insights-card .wp-block-post-date {
	font-family: var(--wp--preset--font-family--cormorant); font-size: 11.5px; color: var(--wp--preset--color--ys-faint); letter-spacing: 0.06em;
}
.ys-insights-card .wp-block-post-title {
	margin: 0; font-size: 14.5px; font-weight: 700; line-height: 1.65;
}
.ys-insights-card .wp-block-post-title a { color: inherit; }
.ys-insights-card .wp-block-post-title a:hover { color: var(--wp--preset--color--ys-gold); }
.ys-insights-card .wp-block-post-excerpt {
	font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.9;
}
.ys-insights-card .wp-block-post-excerpt__excerpt { margin: 0; }
.ys-insights-card .wp-block-post-excerpt__more-link { display: none; } /* the whole card is already the link */

/* ---- Pagination ------------------------------------------------------------ */
.ys-insights-pagination.wp-block-query-pagination {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px;
	margin-top: clamp(28px, 4vw, 44px);
}
.ys-insights-pagination a,
.ys-insights-pagination span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 38px; height: 38px; padding: 0 12px;
	border: 1px solid var(--wp--preset--color--ys-border-3); border-radius: 4px;
	font-size: 12.5px; color: var(--wp--preset--color--ys-navy-nav);
}
.ys-insights-pagination .current { background: var(--wp--preset--color--ys-navy); border-color: var(--wp--preset--color--ys-navy); color: #fff; }
.ys-insights-pagination a:hover { border-color: var(--wp--preset--color--ys-navy); }

/* ==========================================================================
   Phase 5 — Cost Simulator (templates/page-simulator.html)
   ========================================================================== */

.ys-sim-hero { background: var(--wp--preset--color--ys-navy-deep); padding: clamp(28px, 4vw, 58px) clamp(18px, 3vw, 32px); }
.ys-sim-hero__breadcrumb { margin: 0 0 clamp(16px, 2.5vw, 26px); }
.ys-sim-hero h1 { margin: 0 0 14px; font-size: clamp(24px, 3.8vw, 42px); font-weight: 900; line-height: 1.35; color: #fff; }
.ys-sim-hero p { margin: 0; max-width: 600px; font-size: clamp(12px, 1.1vw, 14px); color: rgba(255,255,255,0.8); line-height: 2; }

.ys-sim-section {
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-radius: 6px;
	padding: clamp(18px, 2.2vw, 28px);
}
.ys-sim-section + .ys-sim-section { margin-top: clamp(14px, 2vw, 20px); }
.ys-sim-section__head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 16px; }
.ys-sim-section__num { font-family: var(--wp--preset--font-family--cormorant); font-size: 15px; color: var(--wp--preset--color--ys-gold); }
.ys-sim-section__head h2 { margin: 0; font-size: 15px; font-weight: 700; }

/* Card-style radio/checkbox options (plans + homes). The <input> stays in
   the DOM (native, keyboard/AT accessible) but visually hidden; the
   surrounding <label> is styled based on :has(:checked) so no JS is
   required just to reflect a selection. */
.ys-sim-options { display: grid; gap: 10px; }
.ys-sim-options--plans { grid-template-columns: repeat(auto-fit, minmax(min(100%, 215px), 1fr)); }
.ys-sim-options--homes { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }
.ys-sim-option {
	position: relative; display: block; cursor: pointer; border-radius: 5px;
	padding: 15px 16px; border: 1px solid var(--wp--preset--color--ys-border-3); background: #fff;
	transition: border-color .15s, background .15s;
}
.ys-sim-option input {
	position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none;
}
.ys-sim-option:has(input:checked) { border: 2px solid var(--wp--preset--color--ys-gold); background: #fdf9f0; padding: 14px 15px; }
.ys-sim-option:has(input:focus-visible) { outline: 2px solid var(--wp--preset--color--ys-gold); outline-offset: 2px; }
.ys-sim-option__name { display: block; font-size: 13.5px; font-weight: 700; margin-bottom: 5px; }
.ys-sim-option__note { display: block; font-size: 11px; color: var(--wp--preset--color--ys-muted); line-height: 1.8; }
.ys-sim-options--homes .ys-sim-option__name { font-size: 13px; margin-bottom: 4px; }

/* Family counter */
.ys-sim-counter-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.ys-sim-counter { display: flex; align-items: center; border: 1px solid var(--wp--preset--color--ys-border-3); border-radius: 999px; overflow: hidden; }
.ys-sim-counter button {
	width: 42px; height: 42px; background: #fff; border: none; font-size: 19px;
	color: var(--wp--preset--color--ys-navy); cursor: pointer; font-family: inherit;
}
.ys-sim-counter button:disabled { color: var(--wp--preset--color--ys-border-3); cursor: not-allowed; }
.ys-sim-counter__value { min-width: 56px; text-align: center; font-size: 16px; font-weight: 900; }
.ys-sim-counter-row__note { font-size: 11.5px; color: var(--wp--preset--color--ys-muted); }


/* Exchange rate — fixed, not a visitor-adjustable slider (see
   YAMATO_SIM_FX_RATE / YAMATO_SIM_FX_PERIOD in functions.php). */
.ys-sim-rate-fixed { margin: 0; font-size: 15px; font-weight: 900; color: var(--wp--preset--color--ys-navy); }
.ys-sim-rate-note { margin: 8px 0 0; font-size: 11px; color: var(--wp--preset--color--ys-muted); line-height: 1.7; }

/* Result panel */
.ys-sim-result {
	background: #fff; border: 1px solid var(--wp--preset--color--ys-border); border-top: 2px solid var(--wp--preset--color--ys-gold);
	border-radius: 6px; padding: clamp(20px, 2.4vw, 30px); color: var(--wp--preset--color--ys-navy);
	box-shadow: 0 14px 34px rgba(11,28,61,0.08);
}
.ys-sim-result__eyebrow { font-family: var(--wp--preset--font-family--cormorant); font-size: 10.5px; letter-spacing: 0.3em; color: var(--wp--preset--color--ys-gold-hover); margin-bottom: 16px; }
.ys-sim-result__label { font-size: 11.5px; color: #5c6c86; margin-bottom: 6px; }
.ys-sim-result__jpy { font-size: clamp(26px, 3vw, 34px); font-weight: 900; line-height: 1.2; letter-spacing: 0.01em; }
.ys-sim-result__aed { font-size: 12.5px; color: var(--wp--preset--color--ys-gold-hover); margin-top: 4px; }
.ys-sim-result__lines {
	margin: 20px 0 0; border-top: 1px solid var(--wp--preset--color--ys-border); padding-top: 16px;
	display: flex; flex-direction: column; gap: 11px;
}
.ys-sim-result__line { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
.ys-sim-result__line-label { color: #5c6c86; line-height: 1.6; }
.ys-sim-result__line-value { font-weight: 700; white-space: nowrap; }
.ys-sim-result__annual {
	margin-top: 18px; border-top: 1px solid var(--wp--preset--color--ys-border); padding-top: 16px;
	display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
}
.ys-sim-result__annual-label { font-size: 12px; color: #5c6c86; }
.ys-sim-result__annual-value { font-size: 16px; font-weight: 900; }
.ys-sim-result .ys-btn { width: 100%; margin-top: 22px; font-size: 13px; padding: 14px; }
/* This is now the single, unambiguous primary action in the panel. */
.ys-sim-result__cta-note { margin: 10px 0 0; font-size: 11px; color: var(--wp--preset--color--ys-muted); line-height: 1.7; text-align: center; }
/* Secondary path (email) is a plain link, well below the button, so it
   doesn't compete with the LINE consult CTA above. */
.ys-sim-result__secondary-link {
	display: block; margin-top: 16px; text-align: center;
	font-size: 11.5px; color: var(--wp--preset--color--ys-navy-nav); text-decoration: underline; text-underline-offset: 2px;
}
.ys-sim-result__secondary-link:hover { color: var(--wp--preset--color--ys-gold); }
.ys-sim-result__disclaimer { margin: 16px 0 0; font-size: 10px; color: var(--wp--preset--color--ys-faint); line-height: 1.85; }

/* No-JS notice — hidden as soon as JS runs */
.ys-sim-nojs-notice {
	background: var(--wp--preset--color--ys-bg-gray); border-left: 3px solid var(--wp--preset--color--ys-gold);
	padding: 14px 18px; font-size: 11.5px; color: var(--wp--preset--color--ys-muted); line-height: 1.8;
	margin-bottom: clamp(14px, 2vw, 20px);
}
.js .ys-sim-nojs-notice { display: none; }
