/* YogaVacation Core: calm, readable modules. Colours are variables; override them in Site Editor → Styles → Additional CSS. */
:root {
	--yv-ink: #1A1D23;
	--yv-muted: #6b7079;
	--yv-line: #e4e2dc;
	--yv-soft: #f6f4ef;
	--yv-accent: #2f7d4f;
	--yv-accent-soft: #e9f3ec;
	--yv-warm: #F07D1A;
	--yv-sun: #FAB219;
	--yv-alert: #D03B3B;
	--yv-radius: 12px;
}

.yv-crumbs { font-size: .875rem; color: var(--yv-muted); margin-bottom: .5rem; }
.yv-crumbs a { color: inherit; }
.yv-crumbs .yv-sep { margin: 0 .25rem; }
.yv-summary { font-size: 1.125rem; line-height: 1.55; margin: .25rem 0 .5rem; }
.yv-byline { font-size: .875rem; color: var(--yv-muted); margin: 0 0 1rem; }
.yv-label, .yv-tag { display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .02em; padding: .1rem .55rem; border-radius: 999px; background: var(--yv-accent-soft); color: var(--yv-accent); vertical-align: middle; }
.yv-kicker { margin: 0 0 .75rem; }
.yv-banner { padding: .75rem 1rem; border-radius: var(--yv-radius); background: #fff6e0; border-left: 4px solid var(--yv-sun); font-size: .95rem; }

/* Facts box */
.yv-facts-box { background: var(--yv-soft); border: 1px solid var(--yv-line); border-radius: var(--yv-radius); padding: 1rem 1.25rem; margin: 1.25rem 0 1.5rem; }
.yv-definition { font-size: 1.125rem; line-height: 1.55; margin: 0 0 .75rem; }
.yv-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .75rem 1.5rem; margin: 0; }
.yv-facts > div { min-width: 0; }
.yv-facts dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--yv-muted); margin: 0; }
.yv-facts dd { margin: .1rem 0 0; font-size: 1rem; overflow-wrap: anywhere; }
.yv-badge { display: inline-block; font-size: .85rem; font-weight: 600; padding: .25rem .75rem; border-radius: 999px; background: var(--yv-accent-soft); color: var(--yv-accent); }
.yv-badge-moderate { background: #fff3dc; color: #8a5a00; }
.yv-badge-needs-teacher { background: #fde8e8; color: var(--yv-alert); }

/* Sections and tables */
.yv-section, .yv-faq, .yv-sources, .yv-module { margin: 2rem 0; }
.yv-section h2, .yv-faq h2, .yv-sources h2, .yv-module-title { font-size: 1.375rem; margin: 0 0 .75rem; }
.yv-cautions { border-left: 4px solid var(--yv-warm); padding-left: 1rem; }
.yv-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.yv-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.yv-table th, .yv-table td { text-align: left; padding: .55rem .65rem; border-bottom: 1px solid var(--yv-line); vertical-align: top; }
.yv-table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--yv-muted); }
.yv-note { font-size: .875rem; color: var(--yv-muted); }
.yv-itinerary > div { display: grid; grid-template-columns: 7rem 1fr; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--yv-line); }
.yv-itinerary dt { font-weight: 600; }
.yv-itinerary dd { margin: 0; }
.yv-inout { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
.yv-steplist { list-style: none; counter-reset: yv-step; padding: 0; margin: 0; }
.yv-step { counter-increment: yv-step; display: flex; gap: 1rem; align-items: flex-start; padding: .75rem 0; border-bottom: 1px solid var(--yv-line); }
.yv-step::before { content: counter(yv-step); flex: 0 0 2rem; height: 2rem; border-radius: 50%; background: var(--yv-accent-soft); color: var(--yv-accent); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.yv-step-img img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; display: block; }
.yv-step-body { display: flex; flex-direction: column; gap: .2rem; }
.yv-step-meta { font-size: .875rem; color: var(--yv-muted); }
.yv-step-notes { font-size: .95rem; }

/* Buttons */
.yv-button, .yv-filterbar button { display: inline-block; background: var(--yv-accent); color: #fff; border: 0; border-radius: 999px; padding: .6rem 1.25rem; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.yv-button:hover, .yv-button:focus, .yv-filterbar button:hover { filter: brightness(1.08); color: #fff; }
.yv-cta { margin: 1.5rem 0 .5rem; }

/* FAQ, reviewer, sources */
.yv-faq-item { border-top: 1px solid var(--yv-line); padding: .75rem 0; }
.yv-faq-item h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.yv-faq-item p { margin: 0 0 .5rem; }
.yv-reviewer { margin: 2rem 0; padding: 1rem 1.25rem; border-radius: var(--yv-radius); background: var(--yv-accent-soft); }
.yv-reviewer p { margin: .2rem 0; }
.yv-sources ol { font-size: .9rem; padding-left: 1.25rem; }
.yv-sources li { margin: .3rem 0; overflow-wrap: anywhere; }
.yv-accessed { color: var(--yv-muted); }
.yv-checked { font-size: .875rem; color: var(--yv-muted); margin: 1rem 0; }

/* Cards and modules */
.yv-modules { margin-top: 2.5rem; border-top: 1px solid var(--yv-line); padding-top: .5rem; }
.yv-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.yv-card { display: flex; flex-direction: column; border: 1px solid var(--yv-line); border-radius: var(--yv-radius); overflow: hidden; text-decoration: none; color: inherit; background: #fff; transition: box-shadow .15s ease; }
.yv-card:hover, .yv-card:focus { box-shadow: 0 4px 16px rgba(26, 29, 35, .08); }
.yv-card-img img { display: block; width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; }
.yv-card-body { display: flex; flex-direction: column; gap: .25rem; padding: .75rem .9rem 1rem; }
.yv-card-title { font-weight: 600; line-height: 1.3; }
.yv-card-fact { font-size: .85rem; color: var(--yv-muted); }
.yv-chips { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.yv-chips a { display: inline-block; padding: .3rem .8rem; border-radius: 999px; background: var(--yv-soft); border: 1px solid var(--yv-line); text-decoration: none; color: inherit; font-size: .9rem; }

/* Directory, glossary, search */
.yv-filterbar { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: flex-end; padding: 1rem; margin: 1rem 0; background: var(--yv-soft); border-radius: var(--yv-radius); }
.yv-filter { display: flex; flex-direction: column; gap: .2rem; font-size: .8rem; color: var(--yv-muted); min-width: 140px; flex: 1 1 140px; }
.yv-filter select, .yv-filter input { font: inherit; font-size: .95rem; color: var(--yv-ink); padding: .45rem .6rem; border: 1px solid var(--yv-line); border-radius: 8px; background: #fff; }
.yv-filter-actions { display: flex; gap: .75rem; align-items: center; }
.yv-gloss-type { display: flex; gap: .75rem; align-items: flex-end; flex-wrap: wrap; }
.yv-count { font-size: .9rem; color: var(--yv-muted); }
.yv-empty { padding: 1rem; background: var(--yv-soft); border-radius: var(--yv-radius); }
.yv-pages { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1.5rem 0; }
.yv-pages a, .yv-pages span { padding: .35rem .75rem; border-radius: 8px; border: 1px solid var(--yv-line); text-decoration: none; }
.yv-pages [aria-current] { background: var(--yv-accent); color: #fff; border-color: var(--yv-accent); }
.yv-pages .yv-gap { border: 0; }
.yv-az { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0; }
.yv-az a, .yv-az span { min-width: 2rem; text-align: center; padding: .3rem 0; border-radius: 6px; }
.yv-az a { background: var(--yv-accent-soft); color: var(--yv-accent); text-decoration: none; font-weight: 600; }
.yv-az span { color: #c4c7cc; }
.yv-gl ul { list-style: none; padding: 0; margin: 0 0 1.5rem; columns: 2 18rem; }
.yv-gl li { break-inside: avoid; padding: .3rem 0; }
.yv-gl-note { color: var(--yv-muted); font-size: .9rem; }
.yv-search-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 1.5rem; }
.yv-search-nav a { padding: .3rem .8rem; border-radius: 999px; border: 1px solid var(--yv-line); text-decoration: none; }
.yv-search-nav span { color: var(--yv-muted); }
.yv-search-group ul { list-style: none; padding: 0; }
.yv-search-group li { padding: .6rem 0; border-bottom: 1px solid var(--yv-line); }
.yv-search-group li p { margin: .25rem 0 0; font-size: .95rem; color: var(--yv-muted); }

/* Pose library (0.2.0): review lines, precautions, steps table, indexes, pathway, print */
.yv-muted { color: var(--yv-muted); }
.yv-review-status { font-size: .875rem; margin: -.5rem 0 1rem; display: flex; flex-wrap: wrap; gap: .25rem .5rem; align-items: center; }
.yv-review-status span[class^="yv-rs-"] { padding: .1rem .55rem; border-radius: 999px; }
.yv-rs-reviewed, .yv-rs-verified { background: var(--yv-accent-soft); color: var(--yv-accent); }
.yv-rs-unreviewed { background: var(--yv-soft); color: var(--yv-ink); border: 1px solid var(--yv-line); }
.yv-rs-needs { background: #fff3dc; color: #8a5a00; }
.yv-reviewer-library .yv-review-status { margin: 0 0 .5rem; }
.yv-credit { font-size: .8rem; color: var(--yv-muted); margin: 0 0 .75rem; }
.yv-editor-warn { font-size: .8rem; color: var(--yv-alert); margin: 0 0 .75rem; }
.yv-order-note { margin: .75rem 0 0; font-size: .95rem; }
.yv-print-row { margin: .5rem 0 0; }
.yv-print-link { font-size: .9rem; font-weight: 600; }
.yv-disambig { margin: 1.5rem 0; padding: .9rem 1.1rem; border-radius: var(--yv-radius); background: #fff6e0; border-left: 4px solid var(--yv-sun); }
.yv-disambig p { margin: .25rem 0; }
.yv-precautions { border: 1px solid #f3c9c9; border-left: 4px solid var(--yv-alert); background: #fdf5f5; border-radius: var(--yv-radius); padding: 1rem 1.25rem; }
.yv-precautions h2 { color: var(--yv-alert); }
.yv-steps h3 { font-size: 1.05rem; margin: 1rem 0 .4rem; }
.yv-version { font-size: .95rem; }
.yv-steps-table td p { margin: 0 0 .3rem; }
.yv-step-n { font-weight: 700; color: var(--yv-accent); width: 2rem; }
.yv-step-skt { font-size: .85rem; color: var(--yv-muted); }
.yv-parts li { margin: .35rem 0; }
.yv-lib .yv-card[hidden], .yv-az-index [hidden] { display: none; }
.yv-lib .yv-card-fact .yv-tag { margin-left: .25rem; }
.yv-az-table td:first-child { min-width: 12rem; }
.yv-browse-group { margin: 2rem 0; }
.yv-browse-list { columns: 2 16rem; padding-left: 1.1rem; }
.yv-browse-list li { break-inside: avoid; padding: .2rem 0; }
.yv-count-inline { font-size: .85rem; font-weight: 400; color: var(--yv-muted); }
.yv-pathway { list-style: none; counter-reset: yv-stage; padding: 0; }
.yv-stage { counter-increment: yv-stage; position: relative; padding: .25rem 0 1rem 3rem; border-left: 2px solid var(--yv-line); margin-left: 1rem; }
.yv-stage::before { content: counter(yv-stage); position: absolute; left: -1.05rem; top: 0; width: 2rem; height: 2rem; border-radius: 50%; background: var(--yv-accent); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.yv-stage h3 { margin: .2rem 0 .4rem; font-size: 1.1rem; }
.yv-series-tree { padding-left: 1.25rem; }
.yv-series-tree.yv-depth-0 { list-style: none; padding: 0; }
.yv-series-tree.yv-depth-0 > li { border: 1px solid var(--yv-line); border-radius: var(--yv-radius); padding: .75rem 1rem; margin: 0 0 1rem; }
.yv-series-tree h3 { margin: 0; font-size: 1.15rem; }

@media print {
	header.wp-block-template-part, footer.wp-block-template-part, .yv-modules, .yv-filterbar, .yv-print-row, .yv-crumbs, .yv-search-nav, .yv-editor-warn { display: none !important; }
	body { background: #fff; color: #000; }
	.yv-table th, .yv-table td { border: 1px solid #bbb; }
	.yv-section, .yv-steps-table tr { break-inside: avoid; }
	a { color: inherit; text-decoration: none; }
}

@media (max-width: 600px) {
	.yv-facts { grid-template-columns: 1fr 1fr; }
	.yv-itinerary > div { grid-template-columns: 1fr; gap: .2rem; }
	.yv-cards { grid-template-columns: 1fr 1fr; gap: .75rem; }
	.yv-filter { flex-basis: 100%; }
	.yv-filter.yv-filter-q { flex-basis: 100%; }
	.yv-lib .yv-filter { flex: 1 1 45%; min-width: 0; }
	.yv-stage { padding-left: 2rem; }
}
@media (max-width: 380px) {
	.yv-cards, .yv-facts { grid-template-columns: 1fr; }
}

/* Sequence step tables on phones and narrow tablets: one card per step (2026-10-06) */
@media (max-width: 960px) {
	.yv-steps-table thead { display: none; }
	.yv-steps-table, .yv-steps-table tbody { display: block; width: 100%; }
	.yv-steps-table tr { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; padding: .9rem 0; border-bottom: 1px solid #e6e2dc; }
	.yv-steps-table td { display: block; border: 0 !important; padding: 0 !important; background: none; }
	.yv-steps-table td:empty { display: none; }
	.yv-steps-table td.yv-step-n { width: 1.9rem; height: 1.9rem; border-radius: 50%; background: #D2691E; color: #fff; display: grid; place-items: center; font-weight: 700; flex: none; }
	.yv-steps-table td:nth-child(2) { flex: 1 1 calc(100% - 2.6rem); font-weight: 700; }
	.yv-steps-table td:nth-child(n+3):not(:last-child) { font-size: .82rem; background: #f6f1e7; border-radius: 999px; padding: .15rem .6rem !important; }
	.yv-steps-table td:last-child { flex-basis: 100%; font-size: .92rem; }
	.yv-steps-table td:last-child p { margin: .25rem 0; }
}

/* Pose cards without a verified photo: a calm placeholder instead of an empty card (2026-10-06) */
.yv-lib-card:not(:has(img))::before { content: ""; display: block; width: 100%; aspect-ratio: 3 / 2; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23D2691E%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2214%22%20r%3D%225%22/%3E%3Cpath%20d%3D%22M32%2020v16%22/%3E%3Cpath%20d%3D%22M18%2030c5%203%209%204%2014%204s9-1%2014-4%22/%3E%3Cpath%20d%3D%22M14%2050c6-6%2012-8%2018-8s12%202%2018%208%22/%3E%3Cpath%20d%3D%22M22%2050h20%22/%3E%3C/svg%3E") center / 56px no-repeat, linear-gradient(135deg, #FBF1E6, #F3DEC8); }

/* Pose gallery slider + Share your pose (2026-10-07) */
.yv-gal { position: relative; margin: .4rem 0 1rem; }
.yv-gal__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 0; border-radius: 14px; scrollbar-width: none; }
.yv-gal__track::-webkit-scrollbar { display: none; }
.yv-gal__slide { flex: 0 0 100%; margin: 0; scroll-snap-align: start; position: relative; aspect-ratio: 3 / 2; background: var(--yv-soft); }
.yv-gal__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yv-gal__slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.4rem .9rem .6rem; color: #fff; font-size: .9rem; background: linear-gradient(transparent, rgba(0,0,0,.55)); }
.yv-gal__btn { position: absolute; top: 50%; transform: translateY(-50%); width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); color: var(--yv-ink); font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.15); }
.yv-gal__prev { left: .6rem; } .yv-gal__next { right: .6rem; }
.yv-gal__count { text-align: right; font-size: .85rem; color: var(--yv-muted); margin: .3rem .2rem 0; }
.yv-share { border: 1px solid var(--yv-line); border-radius: 14px; padding: .8rem 1rem; background: var(--yv-soft); }
.yv-share summary { cursor: pointer; font-weight: 700; color: var(--yv-accent); }
.yv-share__form label { display: grid; gap: .3rem; font-weight: 600; }
.yv-share__form input[type=text], .yv-share__form input[type=file] { font: inherit; padding: .55rem .7rem; border: 1px solid var(--yv-line); border-radius: 10px; background: #fff; }
.yv-share__check label { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; }
.yv-share__hp { position: absolute !important; left: -9999px !important; }
.yv-share__msg { padding: .6rem .8rem; border-radius: 10px; font-weight: 600; }
.yv-share__msg.is-ok { background: var(--yv-accent-soft); color: var(--yv-accent); }
.yv-share__msg.is-err { background: #fbecec; color: var(--yv-alert); }

/* Step photos: a small picture of the pose next to its name (2026-10-08). */
.yv-steps-table .yv-step-img { float: left; width: 64px; height: 64px; object-fit: cover; border-radius: 8px; margin: 0 .7rem .2rem 0; }
.yv-steps-table td:nth-child(2)::after { content: ""; display: block; clear: both; }
