/*
Theme Name: MissaMap
Description: MissaMap 2.0 WordPress presentation layer.
Version: 0.1.0
Text Domain: missamap
*/

.mm-locale-picker { display: inline-flex; align-items: center; min-height: 44px; }
.mm-locale-picker select { min-height: 36px; border: 1px solid var(--mm-line-300, #d9ded7); border-radius: 6px; background: transparent; padding: .35rem .55rem; color: inherit; }
.brand-logo { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .45rem; color: #0b2d5b; line-height: 0; text-decoration: none; }
.brand-logo img { display: block; width: 30px; height: 30px; object-fit: contain; }
.brand-logo-name { display: block; color: #0b2d5b; font-size: 1.05rem; font-weight: 750; letter-spacing: -.03em; line-height: 1; white-space: nowrap; }
.mm-page { width: min(100% - 2rem, 72rem); margin-inline: auto; padding: clamp(2.5rem, 6vw, 5rem) 0; }
.mm-page-article { max-width: 52rem; margin-inline: auto; }
.mm-page-header { margin-bottom: 1.75rem; border-bottom: 1px solid var(--mm-line-200, #e5e7eb); padding-bottom: 1rem; }
.mm-page-header h1 { margin: 0; color: var(--mm-navy-900, #0b2d5b); font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; }
.mm-page-content { color: var(--mm-ink-700, #253044); line-height: 1.75; }
.mm-page-content h2 { margin-top: 2rem; color: var(--mm-navy-800, #123c74); font-size: 1.25rem; }
.mm-page-content ul { padding-left: 1.35rem; }
.mm-page-content li + li { margin-top: .45rem; }
.mm-page-pilgrim-type { max-width: 34rem; padding-top: clamp(2.5rem, 6vw, 4rem); }
.pt-hero { padding: 1.5rem 1.25rem 2rem; border: 1px solid var(--mm-line-200, #e5e7eb); border-radius: var(--mm-radius-lg, 16px); background: linear-gradient(145deg, var(--mm-sky-100, #eaf6ff), #fff 72%); box-shadow: var(--mm-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06)); }
.pt-eyebrow { color: var(--mm-burgundy-600, #7a243a); font-size: .72rem; font-weight: 800; letter-spacing: .08em; margin: 0 0 .5rem; }
.pt-h1 { color: var(--mm-navy-900, #0b2d5b); font-size: 1.35rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.3; margin: 0 0 .75rem; }
.pt-copy { color: #444; font-size: .92rem; line-height: 1.6; }
.pt-note { color: #667085; font-size: .8rem; line-height: 1.55; margin-top: 1rem; }
.pt-cta { display: block; text-align: center; padding: .9rem 1rem; border-radius: 9px; background: var(--mm-burgundy-600, #7a243a); color: #fff; font-weight: 700; text-decoration: none; font-size: 1rem; margin-top: 1.25rem; }
.pt-cta:hover, .pt-cta:focus-visible { background: var(--mm-burgundy-700, #5f1c2e); color: #fff; }
.pt-main { max-width: 34rem; margin: 0 auto; padding: 2.5rem 1.25rem 4rem; }
.pt-card { padding: 1.5rem 1.25rem; border: 1px solid var(--mm-line-200, #e5e7eb); border-radius: var(--mm-radius-lg, 16px); background: #fff; box-shadow: var(--mm-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06)); }
.pt-btn { display: inline-flex; box-sizing: border-box; width: 100%; align-items: center; justify-content: center; gap: .4rem; text-align: center; padding: .85rem 1rem; border-radius: 8px; border: 1px solid #c9c0ac; background: #fff; color: #333; font-size: .92rem; font-weight: 700; text-decoration: none; margin-top: .7rem; cursor: pointer; }
.pt-error { color: #b3261e; font-size: .85rem; margin-top: .75rem; }
.mm-page-lede { color: var(--mm-ink-700, #253044); max-width: 44rem; line-height: 1.65; }
.mm-pilgrimage-list { display: grid; gap: .8rem; list-style: none; margin: 1.5rem 0 0; padding: 0; }
.mm-pilgrimage-card { border: 1px solid var(--mm-line-200, #e5e7eb); border-radius: var(--mm-radius-lg, 16px); background: #fff; padding: 1rem; box-shadow: var(--mm-shadow-sm, 0 1px 2px rgba(16, 24, 40, .06)); }
.mm-pilgrimage-card > a { color: var(--mm-navy-900, #0b2d5b); font-weight: 800; }
.mm-pilgrimage-meta { color: #667085; font-size: .85rem; margin-top: .3rem; }
.mm-pilgrimage-card p { color: #46556d; margin: .5rem 0 0; }
.mm-passport-list { display: grid; gap: .65rem; list-style: none; margin: 0; padding: 0; }
.mm-passport-list li { border: 1px dashed var(--mm-line-300, #cfd6e0); border-radius: var(--mm-radius-md, 12px); background: var(--mm-bg-soft, #f8fafc); padding: .8rem 1rem; }
.legal-shell { max-width: 56rem; }
.legal-intro { max-width: 44rem; color: var(--mm-ink-700, #253044); line-height: 1.7; }
.legal-section { border-top: 1px solid var(--mm-line-200, #e5e7eb); padding: 1.35rem 0; }
.legal-section h2 { margin: 0 0 .65rem; color: var(--mm-navy-800, #123c74); font-size: 1.05rem; }
.legal-section p, .legal-section li { max-width: 48rem; line-height: 1.75; }
.legal-section ul { margin: .5rem 0 0; padding-left: 1.35rem; }
.legal-section li + li { margin-top: .45rem; }
.mm-share-page { max-width: 56rem; }
.passport-stamp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; margin: 1.5rem 0; }
.passport-stamp { min-height: 7rem; display: grid; place-content: center; gap: .35rem; padding: .8rem; border: 2px solid currentColor; border-radius: 8px; text-align: center; transform: rotate(var(--stamp-rotation, 0deg)) translate(var(--stamp-x, 0px), var(--stamp-y, 0px)); opacity: var(--stamp-opacity, 1); }
.passport-stamp-name { font-weight: 800; }
.passport-stamp-date { font-size: .85rem; }
