/*
Theme Name: Love Motion
Version: 1.28
Text Domain: love-motion
*/
:root {
    --paper: #f9f3f5;
    --ink: #322522;
    --plum: #583545;
    --accent: #76265f;
    --line: #d1b7d2;
    --tint: #f1e6f2;
    --serif: "Yu Mincho", "Hiragino Mincho ProN", serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 17px/1.75 "Yu Gothic", Meiryo, sans-serif; }
a { color: var(--accent); text-underline-offset: .25em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
img { max-width: 100%; height: auto; }
h1, h2, h3, .nav { font-family: var(--serif); line-height: 1.38; }
.wrap { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.site-header { text-align: center; padding-top: 16px; }
.brand { display: inline-block; width: 175px; aspect-ratio: 176 / 89; position: relative; overflow: hidden; }
/* Fit the visible mark within the supplied PNG's transparent padding. */
.brand img { display: block; position: absolute; width: calc(342 / 176 * 100%); max-width: none; left: calc(-80 / 176 * 100%); top: calc(-13 / 89 * 100%); }
.wordmark img { display: block; width: 100%; }
.nav { display: flex; justify-content: center; align-items: center; list-style: none; margin: 12px 0 0; padding: 0 0 14px; border-bottom: 1px solid var(--line); }
.nav a { display: block; padding: 2px 23px; color: inherit; text-decoration: none; }
.nav a[aria-current], .nav a:hover { text-decoration: underline; text-decoration-color: var(--accent); }
.site-header .nav li + li { border-left: 1px solid #be8093; }
.home { font-family: var(--serif); }
.home .wrap { width: min(960px, calc(100% - 64px)); }
.home .site-header { padding-top: 25px; }
.home .brand { width: 248px; }
.home .site-header .nav { margin-top: 29px; border: 0; padding: 0; font-size: 23px; }
.home .site-header .nav a { padding-inline: clamp(15px, 3.7vw, 38px); }
.hero { text-align: center; padding-top: 42px; }
.hero h1 { color: #422a1d; font-size: clamp(26px, 5.4vw, 55px); font-weight: 400; line-height: 1.34; letter-spacing: .055em; margin: 0 0 9px; }
.hero img { display: block; width: min(83%, 800px); margin: auto; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid > section { min-width: 0; padding: 14px 22px; }
.grid > section + section { border-left: 1px solid var(--line); }
.grid h2, .grid h3 { margin: 0 0 .42em; }
.grid p { margin: .4em 0; }
.intro { padding: 49px 0 35px; }
.intro .grid > section { display: flex; flex-direction: column; align-items: flex-start; padding: 0 22px 6px 28px; }
.intro h2 { font-size: clamp(19.2px, 2.48vw, 27.2px); white-space: normal; }
.intro .grid p:first-of-type, .page-profile .feature > div > p {
    color: #402b24;
    font-family: var(--serif);
    font-weight: 600;
    line-height: 1.48;
}
.intro .grid p:first-of-type, .page-profile .feature > div > p { font-size: clamp(17px, 2.25vw, 23px); letter-spacing: .025em; }
.intro .grid p:first-of-type { margin: 0 0 5px; font-weight: 400; line-height: 1.55; letter-spacing: .015em; }
.intro .keep-word { white-space: nowrap; }
.page-profile .qualification-list .keep-word { white-space: nowrap; }
.intro .grid p:has(> a) { margin: auto 0 0; }
.intro a { color: #71147a; text-decoration: none; font-weight: 500; letter-spacing: .035em; }
.intro a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.intro a { font-size: clamp(17px, 2.25vw, 23px); }
@media (min-width: 1000px) {
    .home .hero { padding-top: 32px; }
    .home .hero h1 { font-size: 49.5px; }
    .home .intro { padding-top: 38px; }
    .intro .grid p:first-of-type { max-inline-size: 430px; }
}
.services { margin: 0 0 36px 28px; scroll-margin-top: 16px; }
.services:focus { outline: none; }
.services > h2 { position: relative; width: fit-content; margin: 0 0 18px; font-size: clamp(23px, 3.3vw, 34px); text-align: left; }
.services > h2 img {
    position: absolute;
    /* Account for the transparent margins in the lavender artwork. */
    inset-inline-start: calc(100% - .68em);
    top: 50%;
    width: 3.95em;
    height: auto;
    max-width: none;
    transform-origin: 24% 90%;
    transform: translateY(-72%) rotate(22deg) scale(.74);
    pointer-events: none;
}
.services-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.services-column { display: flex; flex-direction: column; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 15px; }
.services-column h3 { margin: 0 0 8px; font-size: clamp(19px, 2.2vw, 26px); }
.services-column p, .services-column a { font-size: clamp(18px, 2vw, 21px); line-height: 1.55; }
.services-column p { margin: 0 0 12px; color: #402b24; }
.services-column a { margin-top: auto; color: #71147a; font-weight: 600; text-decoration: none; }
.services-column a:hover { text-decoration: underline; }
@media (max-width: 700px) {
    .services-columns { grid-template-columns: 1fr; gap: 20px; }
}

.inner { min-height: 54vh; padding: 14px 0 42px; }
.crumb { font-size: .82rem; margin-bottom: 17px; color: #614f58; }
.inner h1 { border-bottom: 1px solid var(--line); font-size: clamp(26px, 3.15vw, 36px); margin: 0 0 17px; padding-bottom: 9px; }
.inner h2 { display: flex; align-items: center; gap: 13px; font-size: clamp(21px, 2.2vw, 26px); margin: 1.15em 0 .52em; }
.inner h2::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.inner h3 { font-size: 19px; margin: 1.1em 0 .45em; }
.entry { overflow-wrap: anywhere; display: flow-root; }
.inner.long-form { max-width: 860px; }
.long-form .entry > h2 { margin-top: 1.5em; }
.detail-lead { font-size: 1.14em; font-weight: 600; }
.special-benefits { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.special-benefits > h2 { margin-top: 0; }
.special-benefits > h2::after { display: none; }
.special-benefits > h3 { margin: 1.25em 0 .45em; font-size: clamp(18px, 2.2vw, 22px); }
.course-status { background: var(--tint); border-left: 3px solid #a06ba5; padding: 8px 12px; border-radius: 0 6px 6px 0; }
.detail-rate { background: var(--tint); padding: 9px 13px; border-radius: 6px; }
.review-entry + .review-entry { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 8px; }
.review-entry h2::after { display: none; }
.review-entry blockquote { margin: 12px 0; padding-left: 14px; border-left: 2px solid var(--line); }
.review-credit { text-align: right; font-size: .92em; }
.contact-jump { display: none; }
.entry > p { margin: .65em 0 1em; }
.entry > h3 { padding-top: .65em; border-top: 1px solid var(--line); }
.entry li + li { margin-top: .2em; }
.entry img, .design-photo { border-radius: 10px; }
.alignright { float: right; margin: 0 0 12px 20px; }
.alignleft { float: left; margin: 0 20px 12px 0; }
.aligncenter { display: block; margin: auto; }
.feature { display: grid; grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr); align-items: center; gap: 24px; margin-bottom: 20px; }
.feature > p:has(.design-photo), .feature > figure { margin: 0; }
.feature .design-photo { display: block; width: 100%; }
.panel { border: 1px solid var(--line); padding: 13px 17px; border-radius: 11px; }
.panel h2, .feature h2, .course-grid h2, .contact h2 { margin-top: 0; }
.panel h2::after, .feature h2::after, .course-grid h2::after, .contact h2::after { display: none; }
.panel h2, .feature h2, .contact h2 { border-left: 4px solid #a06ba5; padding-left: 12px; }
.rows { margin: 0; }
.rows > div { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 3fr); align-items: start; gap: 18px; padding: 7px 0; }
.rows > div + div { border-top: 1px solid var(--line); }
.rows dt { background: var(--tint); border-radius: 7px; padding: 3px 11px; font-weight: 700; }
.rows dd { margin: 2px 0; }
.price-table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.price-table th, .price-table td { border: 1px solid var(--line); padding: 9px 12px; text-align: left; vertical-align: top; }
.price-table thead th, .rate, .notice, .related, .contact-topics { background: var(--tint); }
.rate { display: flex; justify-content: space-evenly; gap: 12px; border-radius: 9px; padding: 13px; font-size: 1.15em; }
.related, .notice { border-radius: 8px; padding: 13px 18px; margin: 20px 0 0; }
.related { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; }
.notice h2 { margin-top: 0; }
.course-grid { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 10px; }
.course-grid > section:first-child { padding-left: 0; }
.course-grid > section:last-child { padding-right: 0; }
.course-grid .design-photo { width: 100%; display: block; margin-bottom: 12px; }
.page-class .feature { grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); }
.profile-role { font: 700 .63em/1.4 "Yu Gothic", Meiryo, sans-serif; background: var(--tint); padding: 3px 9px; border-radius: 6px; }
.profile-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1.75fr); }
.profile-columns > section:first-child { padding-left: 0; }
.profile-columns > section:last-child { padding-right: 0; }
.qualification-grid > section { padding: 0 10px; }
.qualification-grid h3 { padding: 4px 9px; background: var(--tint); border-radius: 6px; }
.inner.page-profile { --profile-title: 30px; --profile-name: 24px; --profile-heading: 20px; }
.inner.page-profile > h1 { font-size: var(--profile-title); }
.page-profile .entry h2 { font-size: var(--profile-heading); }
.page-profile .entry > h2:has(.profile-role) { font-size: var(--profile-name); }
.page-profile .profile-role { font-size: 14px; }
.page-profile .qualification-grid h3 { font-size: 16px; }
.page-profile .feature > div > p,
.page-profile .qualification-list {
    font-family: var(--serif);
    font-weight: 400;
    color: #34241d;
}
.inner:is(.page-counseling, .page-profile, .page-privacy-policy) { --body-copy-size: 19px; }
.page-counseling .entry p:not(:has(> a)),
.page-profile .feature > div > p,
.page-profile .qualification-list,
.page-privacy-policy .entry > p,
.policy-layout section p:not(:last-child:has(> br)) {
    font-size: var(--body-copy-size);
    line-height: 1.75;
}
.qualification-list li { border-bottom: 1px solid var(--line); }
.contact-topics { border-radius: 12px; margin: 18px 0 22px; }
.contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.72fr); gap: 23px; padding-top: 19px; border-top: 1px solid var(--line); }
.contact > section + section { border-left: 1px solid var(--line); padding-left: 23px; }
.contact figure { margin: 0; }
.contact figcaption { font-size: .82em; color: #614f58; }
.contact .design-photo { width: 100%; display: block; }
.adress p { margin: .25em 0; }
.inner.page-privacy-policy { max-width: min(760px, calc(100% - 48px)); }
.page-privacy-policy .entry { font-size: clamp(16px, 1.4vw, 17px); line-height: 1.8; }
.policy-layout nav { margin: 22px 0 32px; padding-block: 10px; border-block: 1px solid var(--line); }
.policy-layout nav p { margin: 0 0 4px; }
.policy-layout nav ul { display: flex; flex-wrap: wrap; gap: 4px 20px; list-style: none; margin: 0; padding: 0; }
.policy-layout nav li { margin: 0; white-space: nowrap; }
.policy-layout section + section { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 24px; }
.policy-layout section h2 { display: block; margin-top: 0; scroll-margin-top: 18px; }
.policy-layout section h2::after { display: none; }
form label { display: block; margin-bottom: 10px; }
.form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
input:not([type=checkbox]), textarea, select { display: block; width: 100%; border: 1px solid #947487; border-radius: 5px; padding: 6px 10px; background: #fffafc; color: inherit; font: inherit; }
button { display: block; width: min(100%, 370px); margin: 15px auto 0; background: #651c50; color: #fff; border: 0; border-radius: 7px; padding: 9px 20px; font: inherit; cursor: pointer; }
.site-footer { background: var(--plum); color: #fff8fc; padding: 15px 0; }
.site-footer .wrap { display: grid; grid-template-columns: minmax(145px, 1fr) minmax(0, 1.67fr); align-items: center; gap: 25px; }
.wordmark { display: block; border-right: 1px solid #cfb6c6; padding-right: 22px; }
.wordmark img { width: min(100%, 295px); margin-inline: auto; }
.site-footer .nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 9px; border: 0; padding: 0; margin: 0; }
.site-footer .nav a { padding: 3px 0; font-size: clamp(.8rem, 1.4vw, 1rem); }
.site-footer .nav a:hover, .site-footer .nav a[aria-current] { text-decoration-color: currentColor; }
.site-footer .nav a:focus-visible { outline-color: #fff6e1; }
@media (max-width: 760px) {
    .services { margin-inline-start: 16px; }
    .home .site-header .nav { margin-top: 17px; font-size: clamp(14px, 2.65vw, 19px); }
    .home .site-header .nav a { padding-inline: clamp(6px, 2vw, 15px); }
    .intro { padding-block: 30px 23px; }
    .intro .grid > section { padding-inline: 16px; }
    .contact { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 15px; }
    .contact > section + section { padding-left: 15px; }
}
@media (max-width: 580px) {
    .services { margin-inline-start: 4px; }
    body { font-size: 16px; }
    .inner.page-profile { --profile-title: 26px; --profile-name: 22px; --profile-heading: 18px; }
    .inner:is(.page-counseling, .page-profile, .page-privacy-policy) { --body-copy-size: 17px; }
    .page-profile .qualification-grid h3 { font-size: 15px; }
    .long-form h1, .review-entry h2 { text-wrap: balance; }
    .wrap, .home .wrap { width: calc(100% - 32px); }
    .home .site-header { padding-top: 16px; }
    .brand, .home .brand { width: 138px; }
    .site-header .nav a { padding-inline: 7px; font-size: clamp(12px, 3.55vw, 15px); }
    .hero { padding-top: 27px; }
    .hero h1 { font-size: clamp(19px, 5.85vw, 33px); letter-spacing: .025em; margin-bottom: 9px; }
    .hero img { width: 100%; }
    .intro { padding-block: 18px 14px; }
    .intro .grid > section { padding: 12px 4px; }
    .intro h2 { font-size: 18.4px; }
    .intro .grid p:first-of-type { line-height: 1.65; }
    .grid, .grid.three, .contact, .feature, .page-class .feature { grid-template-columns: 1fr; }
    .grid > section + section { border-left: 0; border-top: 1px solid var(--line); }
    .contact > section + section { border-left: 0; border-top: 1px solid var(--line); padding: 15px 0 0; }
    .entry .contact-jump { display: block; margin: 10px 0; }
    .contact-jump a { display: inline-block; padding: 8px 14px; border-radius: 6px; background: var(--tint); }
    #contact-form { scroll-margin-top: 12px; }
    .form-pair { grid-template-columns: 1fr; gap: 0; }
    .feature { gap: 10px; }
    .rows > div { grid-template-columns: 1fr; gap: 5px; }
    .course-grid > section { padding-inline: 0; }
    .profile-columns > section:first-child, .profile-columns > section:last-child { padding-inline: 0; }
    .site-footer .wrap { grid-template-columns: 1fr; gap: 9px; }
    .wordmark { border: 0; padding: 0; }
    .wordmark img { width: 165px; margin-inline: 0; }
    .site-footer .nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
