/* seo.css: structure helpers added by the SEO pass. Loaded after global.css.
   Goal: correct heading outline (one H1 per page, breadcrumbs, text section
   titles) without changing how the pages look. */

/* Image-based page/section titles wrapped in a heading: the heading box
   disappears from layout, the <img> keeps its original flex/inline position. */
.seo-img-heading { display: contents; }

/* Homepage definition block (site-wide H1) */
.seo-intro { padding: 28px 0 4px; }
.seo-intro .seo-page-heading { font-size: 22px; font-weight: 400; letter-spacing: 2px; color: rgb(109, 81, 140); text-align: center; margin: 0 0 12px; }
.seo-intro p { color: #5a456e; font-weight: 300; line-height: 1.9; max-width: 860px; margin: 0 auto; text-align: center; }
@media (max-width: 576px) { .seo-intro .seo-page-heading { font-size: 18px; letter-spacing: 1px; } }

/* Text H1 on listing pages that have no title image */
.seo-page-heading.seo-list-heading { font-size: 22px; font-weight: 400; letter-spacing: 2px; color: rgb(109, 81, 140); text-align: center; padding: 24px 0 8px; margin: 0; }

/* Breadcrumb trail */
.seo-breadcrumb { font-size: 13px; padding: 12px 0 0; }
.seo-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.seo-breadcrumb li + li:before { content: "\203A"; padding: 0 8px; color: #999; }
.seo-breadcrumb a { color: #7a6390; }
.seo-breadcrumb span { color: #999; }

/* Event / album detail: title promoted from <p> to <h1> keeps the paragraph look */
.gold-title-text .text .seo-inline-title { font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0 0 1rem; }

/* Headings promoted from h2/h3 to h1: keep their old size */
h1.top-title { font-size: 24px; }
h1.activity-name { font-size: 18px; }

/* Decorative headings demoted from h1 to h2: keep their old h1 styling */
h2.seo-demoted { font-size: 36px; }
.purple-bottom h2.seo-demoted { position: absolute; left: 50%; top: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); color: rgb(109, 81, 140); font-weight: 300; letter-spacing: 5px; white-space: nowrap; }
@media (max-width: 576px) { .purple-bottom h2.seo-demoted { font-size: 24px; } }
section#fresh-girl-mid-text .right-area h2.seo-demoted { text-align: center; font-size: 24px; line-height: 35px; }
@media (max-width: 1200px) { section#fresh-girl-mid-text .right-area h2.seo-demoted { font-size: 24px !important; white-space: initial; } }
section#notice .refund-container .purple-bottom h2.seo-demoted { color: #5b3773; font-size: 24px; font-weight: 400; }
section#sign-up .container-section-2 .section2-title h2.seo-demoted { font-size: 24px; color: #625069; }
section#section-features .title-row h2.section-title.seo-demoted { padding: 70px 15px; font-weight: 400; letter-spacing: 5px; font-size: 36px; }

/* Site-feature headings: visual spacing via CSS instead of interpuncts in the text */
.seo-spaced { letter-spacing: 0.3em; }

/* Google Maps embed on venue and contact pages */
.seo-map { margin: 10px auto 30px; }
.seo-map iframe { display: block; border-radius: 6px; }
.seo-map-link { text-align: center; margin: 12px 0 0; }
.seo-map-link a { color: #7a6390; text-decoration: underline; }

/* Plain content pages (/pricing, /success_stories) and article extras */
.seo-article { padding-bottom: 50px; color: #5a456e; font-weight: 300; line-height: 1.9; }
.seo-article .container { max-width: 900px; }
.seo-article h2 { font-size: 22px; font-weight: 400; color: rgb(109, 81, 140); letter-spacing: 2px; margin: 36px 0 12px; }
.seo-article h3 { font-size: 17px; font-weight: 400; color: rgb(109, 81, 140); margin: 20px 0 6px; }
.seo-article .seo-lead { font-size: 17px; }
.seo-article ul, .seo-article ol { padding-left: 1.4em; }
.seo-article li { margin-bottom: 6px; }
.seo-table-wrap { overflow-x: auto; }
.seo-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.seo-table th, .seo-table td { border: 1px solid #e4dced; padding: 10px 12px; text-align: left; vertical-align: top; }
.seo-table th { background: #f6f2fa; color: rgb(109, 81, 140); font-weight: 400; }
.seo-cta { display: inline-block; padding: 10px 22px; border-radius: 24px; background: rgb(109, 81, 140); color: #fff !important; }
.seo-cta-secondary { background: #fff; color: rgb(109, 81, 140) !important; border: 1px solid rgb(109, 81, 140); margin-left: 8px; }
.seo-cta-row { margin-top: 32px; }
.seo-story { border: 1px solid #e4dced; border-radius: 8px; padding: 18px 22px; margin-bottom: 18px; }
.seo-story h2 { margin: 0 0 6px; font-size: 19px; }
.seo-story-meta { color: #8a7a9c; font-size: 14px; margin-bottom: 8px; }
.seo-story blockquote { margin: 0; padding-left: 14px; border-left: 3px solid #d9cfe6; }
.seo-related-service { margin: 30px 0 10px; padding: 16px 20px; background: #f6f2fa; border-radius: 8px; color: #5a456e; }
.seo-related-service a { color: rgb(109, 81, 140); text-decoration: underline; }
.seo-byline a { color: inherit; text-decoration: underline; }
.seo-en-block { margin-top: 40px; color: #5a456e; font-weight: 300; line-height: 1.8; }
.seo-en-block h2 { font-size: 22px; font-weight: 400; color: rgb(109, 81, 140); margin: 0 0 12px; }
.seo-en-block h3 { font-size: 17px; font-weight: 400; color: rgb(109, 81, 140); margin: 18px 0 6px; }
.seo-en-block ul, .seo-en-block ol { padding-left: 1.4em; }
