/*
 * めぐりのしらべ shared presentation layer.
 *
 * This stylesheet intentionally owns the visual language for every staged
 * Meguri page.  It does not contain ticket, form, payment or reading logic.
 */
.meguri-site-layout {
    --meguri-purple: #5b3287;
    --meguri-purple-deep: #352047;
    --meguri-purple-soft: #eee8f4;
    --meguri-rose: #9c6675;
    --meguri-rose-pale: #f3e7ea;
    --meguri-gold: #b89a63;
    --meguri-gold-pale: #eadcc4;
    --meguri-ivory: #faf7f4;
    --meguri-paper: #fffdfb;
    --meguri-ink: #353238;
    --meguri-muted: #6d666d;
    --meguri-line: rgba(91, 50, 135, .16);
    --meguri-shadow: 0 18px 44px rgba(53, 32, 71, .08);
    margin: 0;
    color: var(--meguri-ink);
    background: var(--meguri-ivory);
    font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 16px;
    line-height: 1.9;
}

.meguri-site-layout *,
.meguri-site-layout *::before,
.meguri-site-layout *::after { box-sizing: border-box; }

.meguri-site-layout a { color: var(--meguri-purple); text-underline-offset: 3px; text-decoration-thickness: 1px; }
.meguri-site-layout a:hover { color: var(--meguri-rose); }
.meguri-site-layout a:focus-visible,
.meguri-site-layout summary:focus-visible,
.meguri-site-layout input:focus-visible,
.meguri-site-layout select:focus-visible,
.meguri-site-layout textarea:focus-visible,
.meguri-site-layout button:focus-visible { outline: 3px solid rgba(184, 154, 99, .75); outline-offset: 3px; }

/* Shared frame */
.meguri-site-header { position: relative; z-index: 20; border-bottom: 1px solid rgba(184, 154, 99, .3); background: rgba(250, 247, 244, .95); backdrop-filter: blur(14px); }
.meguri-site-header__inner,
.meguri-site-footer__inner,
.meguri-site-main { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.meguri-site-header__inner { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 26px; }
.meguri-site-brand { display: inline-flex; align-items: center; gap: 11px; color: var(--meguri-ink); font-family: "Shippori Mincho", "Noto Serif JP", serif; font-size: 1.08rem; font-weight: 600; letter-spacing: .14em; line-height: 1.3; text-decoration: none; white-space: nowrap; }
.meguri-site-brand:hover { color: var(--meguri-purple); }
.meguri-site-brand__mark { position: relative; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--meguri-gold); border-radius: 50%; color: var(--meguri-purple); font-size: 1rem; letter-spacing: 0; }
.meguri-site-brand__mark::after { position: absolute; width: 43px; height: 21px; border: 1px solid rgba(184, 154, 99, .62); border-radius: 50%; content: ""; transform: rotate(-22deg); }
.meguri-site-brand__logo { display: block; width: auto; max-width: 220px; height: 42px; object-fit: contain; object-position: left center; }
.meguri-site-nav-wrap { margin-left: auto; }
.meguri-site-nav-toggle { display: none; }
.meguri-site-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 19px; }
.meguri-site-nav a,
.meguri-site-footer a { color: var(--meguri-ink); font-size: .84rem; font-weight: 500; text-decoration: none; }
.meguri-site-nav a:hover,
.meguri-site-footer a:hover { color: var(--meguri-purple); }

.meguri-site-main { min-height: 58vh; padding: 0 0 82px; }
.meguri-site-content { overflow: hidden; }
.meguri-site-content > :first-child { margin-top: 0; }
.meguri-site-content h1,
.meguri-site-content h2,
.meguri-site-content h3 { color: var(--meguri-ink); font-family: "Shippori Mincho", "Noto Serif JP", serif; font-weight: 500; letter-spacing: .065em; line-height: 1.55; }
.meguri-site-content h1 { margin: 0; font-size: clamp(2rem, 4.4vw, 3.45rem); }
.meguri-site-content h2 { margin: 0 0 16px; font-size: clamp(1.48rem, 2.45vw, 2rem); }
.meguri-site-content h3 { margin: 0 0 8px; font-size: clamp(1.1rem, 1.8vw, 1.36rem); }
.meguri-site-content p { margin: 0 0 1.1em; }
.meguri-site-content p:last-child { margin-bottom: 0; }
.meguri-site-content ul,
.meguri-site-content ol { padding-left: 1.25em; }
.meguri-site-content li { margin: .42em 0; }
.meguri-site-content table { width: 100%; border-spacing: 0; border-collapse: separate; overflow: hidden; border: 1px solid var(--meguri-line); border-radius: 9px; background: rgba(255, 253, 250, .74); }
.meguri-site-content th,
.meguri-site-content td { padding: 14px 16px; border-bottom: 1px solid var(--meguri-line); text-align: left; vertical-align: top; }
.meguri-site-content tr:last-child th,
.meguri-site-content tr:last-child td { border-bottom: 0; }
.meguri-site-content th { width: 34%; color: var(--meguri-purple); background: rgba(238, 232, 244, .7); font-weight: 600; }

/* Buttons and shared form language */
.meguri-cta,
.meguri-site-layout button,
.meguri-site-layout input[type="submit"],
.meguri-site-layout input[type="button"],
.meguri-site-layout .wpcf7-submit { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid transparent; border-radius: 8px; font-family: "Noto Sans JP", sans-serif; font-size: .9rem; font-weight: 500; letter-spacing: .035em; line-height: 1.2; text-decoration: none; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.meguri-cta:hover,
.meguri-site-layout button:hover,
.meguri-site-layout input[type="submit"]:hover,
.meguri-site-layout .wpcf7-submit:hover { text-decoration: none; transform: translateY(-1px); }
.meguri-cta--main,
.meguri-site-layout button,
.meguri-site-layout input[type="submit"],
.meguri-site-layout .wpcf7-submit { border-color: var(--meguri-purple); color: #fff; background: var(--meguri-purple); box-shadow: 0 8px 19px rgba(91, 50, 135, .16); }
.meguri-cta--main:hover,
.meguri-site-layout button:hover,
.meguri-site-layout input[type="submit"]:hover,
.meguri-site-layout .wpcf7-submit:hover { border-color: var(--meguri-purple-deep); color: #fff; background: var(--meguri-purple-deep); }
.meguri-cta--sub { border-color: rgba(91, 50, 135, .52); color: var(--meguri-purple); background: rgba(255, 253, 250, .7); }
.meguri-cta--sub:hover { border-color: var(--meguri-purple); color: var(--meguri-purple); background: #fff; }
.meguri-site-layout label,
.meguri-site-layout legend { color: var(--meguri-ink); font-size: .9rem; font-weight: 600; }
.meguri-site-layout input:not([type="checkbox"]):not([type="radio"]),
.meguri-site-layout select,
.meguri-site-layout textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid rgba(91, 50, 135, .24); border-radius: 8px; color: var(--meguri-ink); background: var(--meguri-paper); box-shadow: none; font: inherit; line-height: 1.55; }
.meguri-site-layout textarea { min-height: 140px; resize: vertical; }
.meguri-site-layout input:not([type="checkbox"]):not([type="radio"]):focus,
.meguri-site-layout select:focus,
.meguri-site-layout textarea:focus { border-color: var(--meguri-purple); outline: 2px solid rgba(184, 154, 99, .2); outline-offset: 1px; }
.meguri-site-layout input[type="checkbox"],
.meguri-site-layout input[type="radio"] { accent-color: var(--meguri-purple); }
.meguri-site-layout .required,
.meguri-site-layout .is-required { color: var(--meguri-rose); }
.meguri-site-layout .wpcf7-not-valid-tip,
.meguri-site-layout .meguri-reading__error,
.meguri-site-layout .meguri-ticket-error { color: #8b344f; font-size: .86rem; }
.meguri-site-layout .wpcf7-response-output,
.meguri-site-layout .meguri-reading__notice,
.meguri-site-layout .meguri-ticket-notice { margin: 18px 0 0; padding: 13px 15px; border: 1px solid rgba(91, 50, 135, .23); border-radius: 8px; color: var(--meguri-ink); background: rgba(238, 232, 244, .64); }
.meguri-site-layout .wpcf7 form.invalid .wpcf7-response-output,
.meguri-site-layout .wpcf7 form.unaccepted .wpcf7-response-output { border-color: rgba(156, 102, 117, .45); background: rgba(243, 231, 234, .62); }
.meguri-site-layout .wpcf7 form.sent .wpcf7-response-output { border-color: rgba(91, 50, 135, .3); background: rgba(238, 232, 244, .72); }
.meguri-site-layout .wpcf7-spinner { vertical-align: middle; }

/* Editorial and legal pages */
.meguri-page-hero { position: relative; margin: 0 calc(50% - 50vw); padding: clamp(48px, 7vw, 82px) max(24px, calc((100vw - 1064px) / 2)); overflow: hidden; background: linear-gradient(125deg, #f2e9f2, #faf7f4 63%, #eee2d0); }
.meguri-page-hero::before,
.meguri-page-hero::after { position: absolute; border: 1px solid rgba(184, 154, 99, .42); border-radius: 50%; content: ""; pointer-events: none; }
.meguri-page-hero::before { top: -180px; right: -90px; width: 380px; height: 380px; }
.meguri-page-hero::after { top: -100px; right: -10px; width: 275px; height: 275px; border-color: rgba(91, 50, 135, .22); }
.meguri-page-hero > * { position: relative; z-index: 1; max-width: 760px; }
.meguri-page-eyebrow,
.meguri-eyebrow { display: inline-block; margin: 0 0 13px; color: var(--meguri-gold); font-size: .74rem; font-weight: 600; letter-spacing: .18em; }
.meguri-page-eyebrow::before,
.meguri-eyebrow::before { display: inline-block; width: 27px; height: 1px; margin: 0 10px 4px 0; background: currentColor; content: ""; vertical-align: middle; }
.meguri-page-hero h1 { margin-bottom: 16px; }
.meguri-page-hero p { max-width: 680px; color: var(--meguri-muted); font-size: 1rem; }
.meguri-site-content > section:not(.meguri-page-hero):not(.meguri-landing__hero):not(.meguri-landing__band) { max-width: 850px; margin: 0 auto; padding: clamp(38px, 5vw, 64px) 0; }
.meguri-site-content > section:not(.meguri-page-hero):not(.meguri-landing__hero):not(.meguri-landing__band) + section:not(.meguri-page-hero):not(.meguri-landing__hero):not(.meguri-landing__band) { border-top: 1px solid var(--meguri-line); }
.page-id-3 .meguri-page-hero,
.page-id-18 .meguri-page-hero,
.page-id-68 .meguri-page-hero,
.page-id-70 .meguri-page-hero { padding-top: clamp(42px, 5vw, 64px); padding-bottom: clamp(42px, 5vw, 64px); }
.page-id-3 .meguri-site-content > section:not(.meguri-page-hero),
.page-id-18 .meguri-site-content > section:not(.meguri-page-hero),
.page-id-68 .meguri-site-content > section:not(.meguri-page-hero),
.page-id-70 .meguri-site-content > section:not(.meguri-page-hero) { max-width: 820px; padding-top: clamp(32px, 4vw, 52px); padding-bottom: clamp(32px, 4vw, 52px); }
.page-id-3 .meguri-site-content h2,
.page-id-18 .meguri-site-content h2,
.page-id-68 .meguri-site-content h2,
.page-id-70 .meguri-site-content h2 { margin-top: 1.55em; margin-bottom: .55em; font-size: clamp(1.25rem, 2vw, 1.6rem); }

/* Top page */
.meguri-landing { margin: 0 calc(50% - 50vw); }
.meguri-landing__inner { width: min(1064px, calc(100% - 48px)); margin: 0 auto; }
.meguri-landing__hero { position: relative; min-height: min(760px, calc(100vh - 72px)); padding: clamp(76px, 11vw, 145px) 0 clamp(68px, 9vw, 116px); overflow: hidden; background: linear-gradient(105deg, rgba(250,247,244,.96) 3%, rgba(250,247,244,.81) 47%, rgba(250,247,244,.34)), url("../images/meguri-top-1.png") center/cover no-repeat; }
.meguri-landing__hero::before,
.meguri-landing__hero::after { position: absolute; right: -9vw; border: 1px solid rgba(184, 154, 99, .45); border-radius: 50%; content: ""; pointer-events: none; }
.meguri-landing__hero::before { top: 9%; width: min(48vw, 660px); height: min(48vw, 660px); }
.meguri-landing__hero::after { top: 18%; width: min(36vw, 500px); height: min(36vw, 500px); border-color: rgba(91, 50, 135, .28); }
.meguri-landing__hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); align-items: center; gap: clamp(36px, 7vw, 96px); }
.meguri-landing__hero-copy { max-width: 620px; }
.meguri-landing h1 { margin-bottom: 18px; font-size: clamp(2.28rem, 4.8vw, 3.92rem); text-shadow: 0 1px 0 rgba(255, 255, 255, .55); }
.meguri-landing__lead { max-width: 560px; color: var(--meguri-muted); font-size: clamp(1rem, 1.5vw, 1.12rem); }
.meguri-landing__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.meguri-landing__hero .meguri-cta--sub,
.meguri-landing__band--about .meguri-cta--sub { min-height: 0; padding: 0 0 5px; border-width: 0 0 1px; border-radius: 0; background: transparent; box-shadow: none; }
.meguri-landing__hero .meguri-cta--sub:hover,
.meguri-landing__band--about .meguri-cta--sub:hover { background: transparent; }
.meguri-visual { position: relative; display: grid; min-height: clamp(310px, 38vw, 470px); place-items: center; overflow: hidden; border: 1px solid rgba(255, 255, 255, .58); border-radius: 52% 48% 49% 51% / 42% 47% 53% 58%; background: radial-gradient(circle at 52% 38%, rgba(255,255,255,.88), rgba(255,255,255,.22) 28%, transparent 52%), linear-gradient(140deg, rgba(91,50,135,.24), rgba(184,154,99,.2)); box-shadow: inset 0 0 0 18px rgba(250,247,244,.12), 0 28px 70px rgba(53, 32, 71, .11); }
.meguri-visual__orbit { position: absolute; z-index: 2; border: 1px solid rgba(184, 154, 99, .72); border-radius: 50%; pointer-events: none; transform-origin: center; }
.meguri-visual__orbit::after { position: absolute; border-radius: 50%; content: ""; }
.meguri-visual__orbit--gold { width: 80%; height: 42%; animation: meguri-hero-orbit-gold 14s linear infinite; }
.meguri-visual__orbit--gold::after { top: 3px; right: 13%; width: 9px; height: 9px; background: var(--meguri-gold); box-shadow: 0 0 16px rgba(184, 154, 99, .85); }
.meguri-visual__orbit--rose { width: 63%; height: 68%; border-color: rgba(156, 102, 117, .42); animation: meguri-hero-orbit-rose 18s linear infinite; }
.meguri-visual__orbit--rose::after { bottom: 7%; left: 14%; width: 6px; height: 6px; background: rgba(156, 102, 117, .7); box-shadow: 0 0 12px rgba(156, 102, 117, .5); }
.meguri-visual__placeholder { position: absolute; z-index: 3; top: 42.5%; left: 57%; display: grid; width: 120px; height: 120px; margin: 0; place-items: center; border: 1px solid rgba(184,154,99,.75); border-radius: 50%; color: var(--meguri-purple); background: rgba(250,247,244,.55); font-family: "Shippori Mincho", serif; font-size: 2.35rem; letter-spacing: .1em; transform: translate(-50%, -50%); overflow: hidden; text-indent: -9999px; }
.meguri-visual__placeholder::after { position: absolute; inset: 0; display: grid; place-items: center; color: var(--meguri-purple); font-family: "Shippori Mincho", serif; font-size: 2.35rem; line-height: 1; letter-spacing: 0; text-indent: 0; content: "巡"; transform: translateY(-3px); }
@keyframes meguri-hero-orbit-gold { from { transform: rotate(-28deg); } to { transform: rotate(332deg); } }
@keyframes meguri-hero-orbit-rose { from { transform: rotate(32deg); } to { transform: rotate(-328deg); } }
.meguri-landing__band { padding: clamp(62px, 9vw, 106px) 0; }
.meguri-landing__band--about,
.meguri-landing__band--flow { background: var(--meguri-ivory); }
.meguri-landing__band--values { position: relative; overflow: hidden; background: linear-gradient(105deg, rgba(250,247,244,.92), rgba(250,247,244,.65)), url("../images/meguri-top-4.png") center/cover no-repeat; }
.meguri-landing__band--values::after { position: absolute; right: -170px; bottom: -250px; width: 530px; height: 530px; border: 1px solid rgba(184,154,99,.35); border-radius: 50%; content: ""; }
.meguri-landing__band--profile { background: linear-gradient(125deg, #faf7f4, #f1e2e7); }
.meguri-landing__band--cta { color: #fff; background: linear-gradient(135deg, var(--meguri-purple-deep), var(--meguri-purple) 56%, #8b6279); }
.meguri-section-intro { position: relative; z-index: 1; max-width: 700px; }
.meguri-section-intro p { color: var(--meguri-muted); }
.meguri-landing__band--cta .meguri-section-intro { max-width: 760px; margin: 0 auto; text-align: center; }
.meguri-landing__band--cta h2,
.meguri-landing__band--cta p { color: #fff; }
.meguri-landing__band--cta .meguri-eyebrow { color: #f0d598; }
.meguri-landing__band--cta .meguri-landing__actions { display: grid; grid-template-columns: repeat(2, max-content); align-items: stretch; justify-content: center; gap: 12px; margin-top: 24px; }
.meguri-landing__band--cta .meguri-cta { box-sizing: border-box; width: auto; height: 48px; min-height: 48px; margin: 0; padding: 0 20px 6px; align-self: stretch; line-height: 1; }
.meguri-landing__band--cta .meguri-cta--main { border-color: var(--meguri-ivory); color: var(--meguri-purple); background: var(--meguri-ivory); box-shadow: none; }
.meguri-landing__band--cta .meguri-cta--main:hover { color: var(--meguri-purple-deep); background: #fff; }
.meguri-landing__band--cta .meguri-cta--sub { border-color: rgba(255,255,255,.74); color: #fff; background: transparent; }
.meguri-landing__band--cta .meguri-cta--sub:hover { color: #fff; background: rgba(255,255,255,.12); }
.meguri-service-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 36px; }
.meguri-service-card { display: flex; min-height: 0; flex-direction: column; align-items: flex-start; padding: 25px 23px; border: 1px solid rgba(184,154,99,.35); border-radius: 9px; background: rgba(255,253,250,.8); box-shadow: 0 15px 35px rgba(53,32,71,.06); }
.meguri-service-card h3 { margin-bottom: 10px; font-size: clamp(1.14rem, 1.6vw, 1.38rem); line-height: 1.5; word-break: keep-all; }
.meguri-service-card p { color: var(--meguri-muted); }
.meguri-service-card .meguri-cta { display: inline-grid; width: auto; min-height: 40px; margin-top: auto; padding: 0 13px 5px; place-items: center; font-size: .82rem; line-height: 1; white-space: nowrap; box-shadow: none; }
.meguri-service-card--quiet { background: rgba(243,231,234,.56); }
.meguri-service-card--quiet .meguri-cta--sub { border-color: var(--meguri-purple); color: #fff; background: var(--meguri-purple); }
.meguri-service-card .meguri-cta--main { color: #fff; }
.meguri-service-card--quiet .meguri-cta--sub:hover { border-color: var(--meguri-purple-deep); color: #fff; background: var(--meguri-purple-deep); }
.meguri-profile { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: clamp(34px, 6vw, 76px); align-items: center; }
.meguri-profile__visual { position: relative; min-height: 340px; overflow: hidden; border-radius: 48% 52% 47% 53% / 42% 44% 56% 58%; background: linear-gradient(rgba(53,50,56,.03),rgba(53,50,56,.03)), url("../images/kagura-hina-profile.png") center/cover no-repeat; box-shadow: 0 22px 55px rgba(53,32,71,.12); }
.meguri-profile__visual::after { position: absolute; inset: 13px; border: 1px solid rgba(184,154,99,.65); border-radius: inherit; content: ""; pointer-events: none; }
.meguri-profile__placeholder { display: none; }
.meguri-profile__quote { margin: 0 0 18px; color: var(--meguri-purple); font-family: "Shippori Mincho", serif; font-size: clamp(1.35rem, 2.4vw, 1.95rem); line-height: 1.55; }

/* Four-service / long-form service pages */
.meguri-service-page { margin: 0 calc(50% - 50vw); }
.meguri-service-page__hero { position: relative; min-height: clamp(360px, 43vw, 510px); padding: clamp(68px, 8vw, 106px) max(24px, calc((100vw - 1064px) / 2)); overflow: hidden; color: #fff; background: linear-gradient(100deg, rgba(53,32,71,.9), rgba(91,50,135,.69)), url("../images/meguri-top-2.png") center/cover no-repeat; }
.meguri-service-page__hero--mail { background-image: linear-gradient(100deg, rgba(53,32,71,.87), rgba(91,50,135,.62)), url("https://aimeguru.com/wp-content/uploads/2026/07/mail_back.png"); }
.meguri-service-page__hero--zoom { background-image: linear-gradient(100deg, rgba(53,32,71,.88), rgba(91,50,135,.48)), url("https://aimeguru.com/wp-content/uploads/2026/08/top_3_hina.png"); background-position: center right; }
.meguri-service-page__hero > * { position: relative; z-index: 1; width: min(620px, 100%); }
.meguri-service-page__hero h1,
.meguri-service-page__hero h2,
.meguri-service-page__hero p { color: #fff; }
.meguri-service-page__hero h1 { margin-bottom: 16px; font-size: clamp(2rem, 4vw, 3.2rem); }
.meguri-service-page__hero .meguri-eyebrow { color: #f0d598; }
.meguri-service-page__hero .meguri-eyebrow::before { background: currentColor; }
.meguri-service-page__hero-lead { max-width: 590px; font-size: 1rem; }
.meguri-service-page__badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.meguri-service-page__badges li { margin: 0; padding: 5px 9px; border: 1px solid rgba(240,213,152,.6); border-radius: 6px; color: #fff7e9; font-size: .78rem; line-height: 1.4; }
.meguri-service-page__body { width: min(900px, calc(100% - 48px)); margin: 0 auto; padding: clamp(48px, 7vw, 84px) 0; }
.meguri-service-page__body > section + section { margin-top: clamp(40px, 6vw, 70px); }
.meguri-service-page__card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.meguri-service-page__card { padding: 24px; border: 1px solid rgba(184,154,99,.38); border-radius: 9px; background: rgba(255,253,250,.84); box-shadow: var(--meguri-shadow); }
.meguri-service-page__card h3 { color: var(--meguri-purple); }
.meguri-service-page__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; padding: 0; list-style: none; counter-reset: meguri-step; }
.meguri-service-page__steps li { position: relative; margin: 0; padding: 16px 14px; border-top: 1px solid var(--meguri-gold); color: var(--meguri-muted); font-size: .88rem; }
.meguri-service-page__steps li::before { display: block; margin-bottom: 8px; color: var(--meguri-purple); font-family: "Shippori Mincho", serif; font-size: 1.2rem; content: "0" counter(meguri-step); counter-increment: meguri-step; }
.meguri-service-page__notice { padding: 18px 20px; border-left: 2px solid var(--meguri-gold); color: var(--meguri-muted); background: rgba(238,232,244,.45); }

/* Ticket request, ticket entry, and purchaser reception */
.meguri-ticket-page { max-width: 850px; margin: 0 auto; padding: clamp(54px, 8vw, 88px) 0; }
.meguri-ticket-page > .meguri-eyebrow { margin-bottom: 19px; }
.meguri-ticket-request,
.meguri-ticket-gate,
.meguri-ticket-reading,
.page-id-119 .meguri-ai-application,
.page-id-119 .meguri-reading { max-width: 850px; margin: 0; padding: clamp(24px, 4vw, 42px); border: 1px solid rgba(184,154,99,.4); border-radius: 9px; background: rgba(255,253,250,.88); box-shadow: var(--meguri-shadow); }
.meguri-ticket-request h2,
.meguri-ticket-gate h2,
.meguri-ticket-reading h2,
.page-id-119 .meguri-reading h2,
.page-id-119 .meguri-ai-application__heading h3 { margin-bottom: 12px; color: var(--meguri-purple); font-size: clamp(1.42rem, 2.4vw, 1.88rem); }
.meguri-ticket-request form,
.meguri-ticket-gate form,
.meguri-ticket-reading form,
.page-id-119 .meguri-reading form { display: grid; gap: 18px; margin-top: 26px; }
.meguri-ticket-request form > p,
.meguri-ticket-reading .meguri-reading__field,
.page-id-119 .meguri-reading__field { display: grid; gap: 8px; margin: 0; }
.meguri-ticket-request__honeypot,
.meguri-ticket-page .hp-wrap,
.meguri-ticket-page input[name="website"],
.meguri-ticket-page label[for*="website"] { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.meguri-ticket-request-complete,
.meguri-reading--completion,
.meguri-reading__completion { padding: clamp(24px, 4vw, 38px); border: 1px solid rgba(184,154,99,.4); border-radius: 9px; background: rgba(238,232,244,.5); }
.meguri-ticket-page .meguri-ticket-entry-result,
.meguri-ticket-page .meguri-ticket-access-result,
.meguri-ticket-page .meguri-ticket-error { padding: 18px 20px; border-left: 2px solid var(--meguri-gold); border-radius: 0; background: rgba(243,231,234,.5); }
.page-id-119 .meguri-site-content > section { max-width: 850px; }
.page-id-119 .meguri-reading { border: 0; background: transparent; box-shadow: none; }
.page-id-119 .meguri-ai-application .meguri-ai-application__heading { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--meguri-line); }
.page-id-119 .meguri-reading__consent { padding: 14px; border-radius: 8px; background: rgba(238,232,244,.48); }

/* Existing free, mail and direct-reading shortcodes inherit the same form language. */
.meguri-free-reading-intro { max-width: 760px; margin: 0 auto; padding: clamp(38px, 5vw, 62px) 0 24px; }
.meguri-free-reading-wrap { max-width: 980px; margin: 0 auto; padding: 0 0 clamp(54px, 8vw, 86px); }
.meguri-free-reading-wrap .meguri-reading,
.meguri-service-page .meguri-reading { padding: clamp(24px, 4vw, 42px); border: 1px solid rgba(184,154,99,.38); border-radius: 9px; background: rgba(255,253,250,.88); box-shadow: var(--meguri-shadow); }
.meguri-site-layout .meguri-reading__field { display: grid; gap: 8px; margin: 0 0 18px; }
.meguri-site-layout .meguri-reading__fieldset { border: 0; padding: 0; }
.meguri-site-layout .meguri-reading__fieldset legend { margin-bottom: 9px; }
.meguri-site-layout .meguri-reading__consent { padding: 14px; border-radius: 8px; background: rgba(238,232,244,.48); }

/* Contact Form 7 is kept as CF7; these rules only give it the shared skin. */
.meguri-site-layout .wpcf7 form { display: grid; gap: 18px; }
.meguri-site-layout .wpcf7 form > p { display: grid; gap: 8px; margin: 0; }
.meguri-site-layout .wpcf7 .wpcf7-list-item { margin: 0; }
.meguri-site-layout .wpcf7 .wpcf7-acceptance { display: flex; gap: 8px; align-items: flex-start; }

/* Footer and Astra's back-to-top control */
.meguri-site-footer { margin-top: 0; border-top: 1px solid rgba(184,154,99,.26); color: rgba(250,247,244,.82); background: linear-gradient(125deg, var(--meguri-purple-deep), #50335f 58%, #795a67); }
.meguri-site-footer__inner { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.65fr); gap: 18px 52px; padding: 50px 0 33px; }
.meguri-site-brand--footer { color: var(--meguri-ivory); }
.meguri-site-brand--footer:hover { color: #fff; }
.meguri-site-brand--footer .meguri-site-brand__mark { border-color: #dfc68c; color: #fff6e6; }
.meguri-site-brand--footer .meguri-site-brand__mark::after { border-color: rgba(223,198,140,.75); }
.meguri-site-footer__message { align-self: center; margin: 0; color: rgba(250,247,244,.82); font-family: "Shippori Mincho", serif; letter-spacing: .08em; }
.meguri-site-footer__nav { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 8px 20px; }
.meguri-site-footer a { color: rgba(250,247,244,.86); }
.meguri-site-footer a:hover { color: #fff; }
.meguri-site-footer__copy { grid-column: 1 / -1; margin: 4px 0 0; color: rgba(250,247,244,.58); font-size: .76rem; }
.meguri-site-layout #ast-scroll-top,
.meguri-site-layout .ast-scroll-top-icon { border-radius: 8px; color: #fff; background: var(--meguri-purple); }
.meguri-site-layout #ast-scroll-top:hover,
.meguri-site-layout #ast-scroll-top:focus-visible { color: #fff; background: var(--meguri-purple-deep); }

/* Motion is enhancement only. */
.meguri-reveal { opacity: 1; transform: none; }
.has-meguri-motion .meguri-reveal { opacity: 0; transform: translateY(18px); transition: opacity .72s ease, transform .72s ease; }
.has-meguri-motion .meguri-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (min-width: 901px) { .meguri-site-nav-wrap:not([open]) > .meguri-site-nav { display: flex; } }
@media (max-width: 900px) {
    .meguri-site-header__inner { min-height: 66px; }
    .meguri-site-nav-wrap { position: relative; }
    .meguri-site-nav-toggle { display: inline-flex; min-height: 40px; align-items: center; gap: 9px; color: var(--meguri-purple); cursor: pointer; font-size: .84rem; font-weight: 500; list-style: none; }
    .meguri-site-nav-toggle::-webkit-details-marker { display: none; }
    .meguri-site-nav-wrap[open] .meguri-site-nav-toggle span { transform: rotate(45deg); }
    .meguri-site-nav { position: absolute; top: calc(100% + 8px); right: 0; display: grid; min-width: min(312px, calc(100vw - 38px)); padding: 14px; border: 1px solid rgba(184,154,99,.38); border-radius: 9px; background: rgba(250,247,244,.98); box-shadow: 0 18px 42px rgba(53,32,71,.14); }
    .meguri-site-nav a { width: 100%; min-height: 42px; padding: 9px 10px; }
    .meguri-landing__hero-inner,
    .meguri-profile { grid-template-columns: 1fr; }
    .meguri-landing__hero { min-height: auto; }
    .meguri-visual { max-width: 500px; min-height: 335px; margin: 8px auto 0; }
    .meguri-visual__placeholder { top: 45.5%; left: 52%; }
    .meguri-site-footer__inner { grid-template-columns: 1fr; gap: 16px; }
    .meguri-site-footer__nav,
    .meguri-site-footer__copy { grid-column: auto; }
    .meguri-service-page__hero--zoom { background-position: 70% center; }
    .meguri-service-page__steps { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .meguri-site-header__inner,
    .meguri-site-footer__inner,
    .meguri-site-main,
    .meguri-landing__inner { width: min(100% - 30px, 1160px); }
    .meguri-site-brand { font-size: .98rem; }
    .meguri-site-brand__logo { max-width: 180px; height: 36px; }
    .meguri-page-hero { padding-right: 22px; padding-left: 22px; }
    .meguri-page-hero h1 { font-size: clamp(1.85rem, 9vw, 2.5rem); }
    .meguri-landing__hero-inner { gap: 34px; }
    .meguri-landing h1 { font-size: clamp(2.14rem, 10vw, 3rem); line-height: 1.48; }
    .meguri-landing__actions { display: grid; grid-template-columns: 1fr; }
    .meguri-landing__band--cta .meguri-landing__actions { display: flex; flex-direction: column; }
    .meguri-landing__actions .meguri-cta { width: 100%; }
    .meguri-landing__hero .meguri-cta--sub,
    .meguri-landing__band--about .meguri-cta--sub { width: fit-content; }
    .meguri-visual { min-height: 290px; border-radius: 46% 54% 49% 51% / 43% 43% 57% 57%; }
    .meguri-visual__placeholder { top: 48.5%; left: 53%; width: 106px; height: 106px; font-size: 2.08rem; }
    .meguri-visual__placeholder::after { font-size: 2.08rem; }
    .meguri-service-grid,
    .meguri-service-page__card-grid,
    .meguri-service-page__steps { grid-template-columns: 1fr; }
    .meguri-service-card { min-height: 0; }
    .meguri-profile__visual { min-height: 280px; max-width: 390px; margin: 0 auto; }
    .meguri-service-page__hero { min-height: 350px; padding-right: 22px; padding-left: 22px; }
    .meguri-service-page__hero--zoom { background-position: 64% center; }
    .meguri-service-page__body { width: min(100% - 30px, 900px); }
    .meguri-site-content > section:not(.meguri-page-hero):not(.meguri-landing__hero):not(.meguri-landing__band) { padding: 38px 0; }
    .meguri-site-content th,
    .meguri-site-content td { display: block; width: 100%; padding: 12px 14px; }
    .meguri-site-content th { border-bottom: 0; }
    .meguri-ticket-page { padding-top: 46px; padding-bottom: 62px; }
}

@media (prefers-reduced-motion: reduce) {
    .meguri-site-layout *,
    .meguri-site-layout *::before,
    .meguri-site-layout *::after { scroll-behavior: auto; transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; }
    .meguri-visual__orbit--gold { animation: none; transform: rotate(-28deg); }
    .meguri-visual__orbit--rose { animation: none; transform: rotate(32deg); }
    .has-meguri-motion .meguri-reveal { opacity: 1; transform: none; }
}

/* Optical vertical centering for Japanese CTA labels */
.meguri-cta__label {
    display: block;
    position: relative;
    top: -2px;
    font-size: .96em;
    line-height: 1;
}
