 /* ==========================================================================
   Premium Form System (Site-wide)
   ========================================================================== */
 .wp-site-blocks main form:not(.search-form),
 .wp-site-blocks .entry-content form:not(.search-form),
 .wp-site-blocks form.ep-search-form,
 .wp-site-blocks .wpcf7 form {
     background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(247, 244, 238, 0.94) 100%);
     border: 1px solid rgba(188, 149, 92, 0.26);
     box-shadow: 0 10px 26px rgba(16, 20, 25, 0.07);
     border-radius: 12px;
     padding: clamp(14px, 2.2vw, 22px);
     box-sizing: border-box;
     max-width: 100%;
     overflow-x: hidden;
 }

 .wp-site-blocks main form *,
 .wp-site-blocks .entry-content form *,
 .wp-site-blocks .wpcf7 form * {
     box-sizing: border-box;
     max-width: 100%;
 }

 .wp-site-blocks main form label,
 .wp-site-blocks .entry-content form label,
 .wp-site-blocks .wpcf7 form label {
     color: #3c3327;
     font-weight: 600;
     letter-spacing: 0.01em;
 }

 .wp-site-blocks main form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="password"], select, textarea),
 .wp-site-blocks .entry-content form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="password"], select, textarea),
 .wp-site-blocks .wpcf7 form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="password"], select, textarea) {
     width: 100%;
     max-width: 100%;
     min-height: 34px;
     padding: 5px 9px;
     border: 1px solid rgba(85, 71, 46, 0.36);
     border-radius: 0;
     background: linear-gradient(180deg, #ffffff 0%, #f8f5ee 100%);
     color: #1f1a14;
     box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
     transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
     box-sizing: border-box;
 }

 /* iOS Safari zoom prevention on focus */
 @media (max-width: 768px) {

     .wp-site-blocks main form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="password"], select, textarea),
     .wp-site-blocks .entry-content form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="password"], select, textarea),
     .wp-site-blocks .wpcf7 form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="password"], select, textarea) {
         font-size: 16px !important;
     }
 }

 .wp-site-blocks main form textarea,
 .wp-site-blocks .entry-content form textarea,
 .wp-site-blocks .wpcf7 form textarea {
     min-height: 120px;
     resize: vertical;
 }

 .wp-site-blocks main form :is(input, select, textarea)::placeholder,
 .wp-site-blocks .entry-content form :is(input, select, textarea)::placeholder,
 .wp-site-blocks .wpcf7 form :is(input, select, textarea)::placeholder {
     color: #8f816a;
 }

 .wp-site-blocks main form :is(input, select, textarea):focus,
 .wp-site-blocks .entry-content form :is(input, select, textarea):focus,
 .wp-site-blocks .wpcf7 form :is(input, select, textarea):focus {
     outline: none;
     border-color: var(--epsc-accent);
     box-shadow: 0 0 0 3px rgba(188, 149, 92, 0.18), inset 0 1px 1px rgba(0, 0, 0, 0.04);
     background: #fffefb;
 }

 .wp-site-blocks main form :is(input[type="checkbox"], input[type="radio"]),
 .wp-site-blocks .entry-content form :is(input[type="checkbox"], input[type="radio"]),
 .wp-site-blocks .wpcf7 form :is(input[type="checkbox"], input[type="radio"]) {
     width: 18px;
     height: 18px;
     min-height: 18px;
     accent-color: var(--epsc-accent);
     vertical-align: middle;
 }

 .wp-site-blocks main form :is(button, input[type="submit"], input[type="button"], .wp-element-button),
 .wp-site-blocks .entry-content form :is(button, input[type="submit"], input[type="button"], .wp-element-button),
 .wp-site-blocks .wpcf7 form :is(button, input[type="submit"], input[type="button"], .wp-element-button) {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-height: 34px;
     padding: 5px 14px;
     border-radius: 0;
     border: 1px solid #9e7b45;
     background: linear-gradient(180deg, #ccb07f 0%, #b69056 100%);
     color: #1b140a;
     font-weight: 700;
     letter-spacing: .03em;
     cursor: pointer;
     box-shadow: 0 4px 10px rgba(25, 19, 10, 0.22);
     transition: transform .16s ease, box-shadow .2s ease, filter .2s ease;
 }

 .wp-site-blocks main form :is(button, input[type="submit"], input[type="button"], .wp-element-button):hover,
 .wp-site-blocks .entry-content form :is(button, input[type="submit"], input[type="button"], .wp-element-button):hover,
 .wp-site-blocks .wpcf7 form :is(button, input[type="submit"], input[type="button"], .wp-element-button):hover {
     filter: brightness(1.04);
     box-shadow: 0 7px 16px rgba(25, 19, 10, 0.25);
     transform: translateY(-1px);
 }

 .wp-site-blocks main form :is(button, input[type="submit"], input[type="button"], .wp-element-button):active,
 .wp-site-blocks .entry-content form :is(button, input[type="submit"], input[type="button"], .wp-element-button):active,
 .wp-site-blocks .wpcf7 form :is(button, input[type="submit"], input[type="button"], .wp-element-button):active {
     transform: translateY(0);
     box-shadow: 0 3px 8px rgba(25, 19, 10, 0.2);
 }

 .wp-site-blocks .wpcf7 form .wpcf7-not-valid-tip {
     color: #9a3434;
     font-size: 12px;
 }

 .wp-site-blocks .wpcf7 form .wpcf7-response-output {
     border-radius: 8px;
     border-width: 1px;
 }

 .ep-search-building {
     margin: 24px 0 40px;
     overflow: hidden;
     border-radius: var(--ep-radius);
     box-shadow: var(--ep-shadow-md);
 }

 .ep-search-building table {
     width: 100%;
     table-layout: fixed;
 }

 .ep-search-building .buildingphotocell {
     width: 140px;
     vertical-align: top;
 }

 .ep-search-building .buildingphotocell img {
     max-width: 100%;
     height: auto;
     display: block;
 }

 @media (max-width: 600px) {
     .ep-search-building .buildingphotocell {
         width: 100px;
     }
 }

 .ep-search-building h2 {
     all: unset !important;
     display: block !important;
     font-family: var(--ep-font-serif) !important;
     font-size: 1.1rem !important;
     font-weight: 600 !important;
     letter-spacing: .06em !important;
     color: #fff !important;
     padding: 12px 18px !important;
     margin: 0 0 12px !important;
     background: url('/img/bg/bg-luxury-dark-navy-texture.png') center / cover no-repeat !important;
     box-shadow: none !important;
     position: relative;
     overflow: hidden !important;
 }
 .ep-search-building h2::before,
 .ep-search-building h2::after {
     content: none !important;
     display: none !important;
 }
 .ep-search-building h2 a {
     color: #fff !important;
     text-decoration: none !important;
     position: relative;
     z-index: 1;
 }
 .ep-search-building h2 a:hover {
     text-decoration: underline !important;
 }
 .ep-search-building h2 .epsc-h2-text-frame {
     display: inline !important;
     padding: 0 !important;
     border: none !important;
     background: transparent !important;
     box-shadow: none !important;
     color: inherit !important;
 }

 #more,
 .ep-search-more {
     text-align: center;
     margin: 24px 0 40px;
 }

 .ep-search-loader {
     position: relative;
     height: 6px;
     background: #eee;
     border-radius: 999px;
     overflow: hidden;
     margin: 12px 0;
     opacity: 0;
     transition: opacity 0.2s ease;
 }

 .ep-search-loader.is-active {
     opacity: 1;
 }

 .ep-search-loader-bar {
     position: absolute;
     top: 0;
     left: -40%;
     height: 100%;
     width: 40%;
     background: linear-gradient(90deg, transparent, #caa55f, transparent);
     animation: ep-search-loading 1.1s infinite;
 }

 @keyframes ep-search-loading {
     0% {
         left: -40%;
     }

     100% {
         left: 100%;
     }
 }

 .ep-search-more-link {
     display: inline-block;
     padding: 10px 18px;
     border: 1px solid #bfa66a;
     border-radius: 6px;
     color: #6b4b00;
     background: #faf7ef;
     text-decoration: none;
     cursor: pointer;
 }

 .ep-search-more-link:hover {
     background: #f2ead7;
 }

.ep-roomsearch-map-wrap {
    position: relative;
}

 .ep-map-type-switch {
     position: absolute;
     top: 12px;
     left: 12px;
     z-index: 6;
     display: inline-flex;
     gap: 6px;
 }

 .ep-map-type-btn {
     border: 1px solid rgba(255, 255, 255, 0.45);
     background: rgba(20, 26, 32, 0.72);
     color: #fff;
     border-radius: 4px;
     padding: 6px 10px;
     font-size: 12px;
     line-height: 1.2;
     cursor: pointer;
 }

 .ep-map-type-btn.is-active {
     background: rgba(188, 149, 92, 0.42);
     border-color: rgba(188, 149, 92, 0.88);
 }

 .ep-map-current-pos-on-map {
     position: absolute;
     top: 12px;
     right: 12px;
     z-index: 6;
     border: 1px solid rgba(255, 255, 255, 0.45);
     background: rgba(20, 26, 32, 0.72);
     color: #fff;
     border-radius: 4px;
     padding: 6px 10px;
     font-size: 12px;
     line-height: 1.2;
     cursor: pointer;
 }

.ep-map-current-pos-on-map:hover {
    background: rgba(188, 149, 92, 0.35);
    border-color: rgba(188, 149, 92, 0.8);
}

.ep-map-info-window {
    display: flex;
     align-items: center;
     gap: 10px;
     min-width: 220px;
 }

 .ep-map-info-thumb-link {
     display: inline-block;
     line-height: 0;
 }

 .ep-map-info-thumb {
     width: 64px;
     height: 64px;
     object-fit: cover;
     border-radius: 8px;
     border: 1px solid rgba(17, 17, 17, 0.12);
 }

 .ep-map-info-body {
     display: flex;
     flex-direction: column;
     gap: 6px;
 }

 .ep-map-info-name {
     color: #22313a;
     font-size: 13px;
     font-weight: 600;
     line-height: 1.35;
     text-decoration: none;
 }

 .ep-map-info-name:hover {
     text-decoration: underline;
 }

 .ep-map-info-detail {
     display: inline-block;
     align-self: flex-start;
     padding: 3px 8px;
     border: 1px solid rgba(188, 149, 92, 0.7);
     border-radius: 3px;
     color: #6a532f;
     font-size: 11px;
     line-height: 1.2;
     text-decoration: none;
 }

 .ep-map-balloon {
     position: absolute;
     z-index: 1000;
     min-width: 240px;
     max-width: 320px;
 }

 .ep-map-balloon-inner {
     position: relative;
     background: rgba(255, 255, 255, 0.98);
     border: 1px solid rgba(17, 17, 17, 0.14);
     border-radius: 10px;
     box-shadow: 0 10px 26px rgba(0, 0, 0, 0.2);
     padding: 10px 12px;
 }

 .ep-map-balloon-inner::before,
 .ep-map-balloon-inner::after {
     content: "";
     position: absolute;
     left: 50%;
     transform: translateX(-50%);
     width: 0;
     height: 0;
     border-left: 10px solid transparent;
     border-right: 10px solid transparent;
 }

 .ep-map-balloon-inner::before {
     top: -11px;
     border-bottom: 11px solid rgba(17, 17, 17, 0.14);
 }

 .ep-map-balloon-inner::after {
     top: -9px;
     border-bottom: 10px solid rgba(255, 255, 255, 0.98);
 }

 .ep-map-balloon-close {
     position: absolute;
     top: -10px;
     right: -10px;
     width: 24px;
     height: 24px;
     border: 1px solid rgba(17, 17, 17, 0.25);
     background: rgba(255, 255, 255, 0.96);
     color: #2c383d;
     border-radius: 999px;
     font-size: 16px;
     line-height: 1;
     cursor: pointer;
     box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
 }

 .ep-search-lang-switch-wrap {
     width: 100%;
     max-width: 1140px;
     margin: 8px auto 0;
     padding: 0 24px;
     box-sizing: border-box;
     display: flex;
     justify-content: flex-end;
 }

 .ep-search-lang-switch {
     position: relative;
     z-index: 5;
 }

 .ep-search-lang-switch ul {
     margin: 0;
     padding: 0;
     list-style: none;
     display: flex;
     gap: 6px;
 }

 .ep-search-lang-item {
     display: inline-block;
     padding: 3px 8px;
     font-size: 11px;
     line-height: 1.2;
     letter-spacing: .02em;
     color: #f5f5f5;
     background: rgba(20, 26, 32, .66);
     border: 1px solid rgba(255, 255, 255, .38);
     border-radius: 4px;
     text-decoration: none;
 }

 .ep-search-lang-item:hover {
     color: #fff;
     background: rgba(188, 149, 92, .28);
     border-color: rgba(188, 149, 92, .8);
 }

 .ep-search-lang-item.is-current {
     color: #fff;
     background: rgba(188, 149, 92, .35);
     border-color: rgba(188, 149, 92, .95);
     font-weight: 600;
 }

 @media (max-width: 640px) {
     .ep-search-lang-switch-wrap {
         margin-top: 4px;
         padding: 0 12px;
     }

     .ep-search-lang-item {
         font-size: 10px;
         padding: 3px 6px;
     }
 }

 /* Member login/register language switch */
 .ep-member-lang-switch-wrap {
     width: 100%;
     max-width: 1140px;
     margin: 8px auto 0;
     padding: 0 24px;
     box-sizing: border-box;
     display: flex;
     justify-content: flex-end;
 }

 .ep-member-lang-switch ul {
     margin: 0;
     padding: 0;
     list-style: none;
     display: flex;
     gap: 6px;
 }

 .ep-member-lang-item {
     display: inline-block;
     padding: 3px 8px;
     font-size: 11px;
     line-height: 1.2;
     letter-spacing: .02em;
     color: #f5f5f5;
     background: rgba(20, 26, 32, .66);
     border: 1px solid rgba(255, 255, 255, .38);
     border-radius: 4px;
     text-decoration: none;
 }

 .ep-member-lang-item:hover {
     color: #fff;
     background: rgba(188, 149, 92, .28);
     border-color: rgba(188, 149, 92, .8);
 }

 .ep-member-lang-item.is-current {
     color: #fff;
     background: rgba(188, 149, 92, .35);
     border-color: rgba(188, 149, 92, .95);
     font-weight: 600;
 }

 @media (max-width: 640px) {
     .ep-member-lang-switch-wrap {
         margin-top: 4px;
         padding: 0 12px;
     }

     .ep-member-lang-item {
         font-size: 10px;
         padding: 3px 6px;
     }
 }

 /* ==========================================================================
    Member login / register (WP-Members) — unified design system (§17)
    ========================================================================== */
 .ep-member-form {
     margin: 8px auto 4px;
 }

 .ep-member-grid {
     display: grid;
     grid-template-columns: 1fr;
     gap: 20px;
     max-width: 980px;
     margin: 0 auto;
     align-items: start;
 }

 .ep-member-grid-single {
     max-width: 560px;
 }

 @media (min-width: 860px) {
     .ep-member-grid:not(.ep-member-grid-single) {
         grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
         gap: 28px;
     }
 }

 .ep-member-col {
     min-width: 0;
 }

 .ep-member-single {
     max-width: 620px;
     margin: 0 auto;
 }

 /* Form card — override site-wide + WP-Members defaults for a clean luxe card */
 .ep-member-form #wpmem_login,
 .ep-member-form #wpmem_reg {
     width: 100%;
 }

 .ep-member-form form.form {
     width: 100%;
     background: #fff !important;
     border: 1px solid rgba(188, 149, 92, 0.28) !important;
     border-radius: var(--ep-radius, 4px) !important;
     box-shadow: var(--ep-shadow-md, 0 4px 12px rgba(0, 0, 0, .08)) !important;
     padding: clamp(22px, 3.4vw, 40px) !important;
     box-sizing: border-box;
 }

 .ep-member-form fieldset {
     border: 0 !important;
     margin: 0 !important;
     padding: 0 !important;
     min-width: 0;
 }

 /* Heading (WP-Members legend) */
 .ep-member-form legend {
     display: block !important;
     float: none !important;
     width: 100% !important;
     box-sizing: border-box;
     font-family: var(--ep-font-serif, "Noto Serif JP", serif) !important;
     font-size: clamp(19px, 2.6vw, 24px) !important;
     font-weight: 600 !important;
     letter-spacing: .04em !important;
     line-height: 1.4 !important;
     color: var(--ep-charcoal, #2C383D) !important;
     padding: 0 0 14px !important;
     margin: 0 0 22px !important;
     border-bottom: 1px solid rgba(188, 149, 92, 0.32) !important;
     position: relative;
 }

 .ep-member-form legend::after {
     content: "";
     position: absolute;
     left: 0;
     bottom: -1px;
     width: 54px;
     height: 2px;
     background: var(--ep-gold, #BC955C);
 }

 /* Field labels */
 .ep-member-form label {
     display: block;
     font-size: 13px !important;
     font-weight: 600 !important;
     letter-spacing: .03em;
     color: #5b5140 !important;
     margin: 0 0 6px;
 }

 .ep-member-form .req {
     color: #b23a3a !important;
     margin-left: 3px;
     font-weight: 600;
 }

 /* Inputs */
 .ep-member-form .div_text {
     margin: 0 0 18px;
 }

 .ep-member-form input[type="text"],
 .ep-member-form input[type="email"],
 .ep-member-form input[type="password"],
 .ep-member-form input.textbox,
 .ep-member-form input.username,
 .ep-member-form input.password {
     width: 100% !important;
     max-width: 100%;
     min-height: 48px !important;
     padding: 12px 14px !important;
     border: 1px solid rgba(85, 71, 46, 0.26) !important;
     border-radius: var(--ep-radius, 4px) !important;
     background: #fff !important;
     background-image: none !important;
     color: #1f1a14;
     font-size: 15px !important;
     box-shadow: none !important;
     box-sizing: border-box;
     transition: border-color .2s ease, box-shadow .2s ease;
 }

 .ep-member-form input[type="text"]:focus,
 .ep-member-form input[type="email"]:focus,
 .ep-member-form input[type="password"]:focus,
 .ep-member-form input.textbox:focus,
 .ep-member-form input.username:focus,
 .ep-member-form input.password:focus {
     outline: none;
     border-color: var(--ep-gold, #BC955C) !important;
     box-shadow: 0 0 0 3px rgba(188, 149, 92, 0.16) !important;
     background: #fffefb !important;
 }

 /* Remember-me row */
 .ep-member-form .button_div {
     margin: 6px 0 0;
 }

 .ep-member-form #rememberme {
     width: 18px !important;
     height: 18px !important;
     min-height: 18px !important;
     accent-color: var(--ep-gold, #BC955C);
     vertical-align: -3px;
 }

 .ep-member-form label[for="rememberme"] {
     display: inline !important;
     font-size: 13px !important;
     font-weight: 500 !important;
     color: #5b5140 !important;
     letter-spacing: .02em;
     margin: 0;
 }

 /* Submit button — Primary (ink × gold), §17.4 */
 .ep-member-form input.buttons,
 .ep-member-form input[type="submit"] {
     display: block !important;
     width: 100% !important;
     min-height: 52px !important;
     margin: 20px 0 0 !important;
     padding: 14px 28px !important;
     background: var(--ep-ink, #111) !important;
     background-image: none !important;
     color: var(--ep-gold, #BC955C) !important;
     border: 1px solid var(--ep-gold, #BC955C) !important;
     border-radius: var(--ep-radius, 4px) !important;
     box-shadow: none !important;
     font-family: var(--ep-font-serif, "Noto Serif JP", serif) !important;
     font-size: 16px !important;
     font-weight: 600 !important;
     letter-spacing: .08em !important;
     cursor: pointer;
     transition: color .2s ease, background .2s ease !important;
 }

 .ep-member-form input.buttons:hover,
 .ep-member-form input[type="submit"]:hover {
     background: #1b1b1b !important;
     color: var(--ep-gold-light, #d4b896) !important;
     transform: none !important;
     box-shadow: none !important;
     filter: none !important;
 }

 /* Required note (register) */
 .ep-member-form .req-text {
     margin: 16px 0 0;
     font-size: 12px;
     color: #8a7f6c;
     letter-spacing: .02em;
 }

 /* Register: intro + alternate-link */
 .ep-member-intro {
     margin: 0 auto 18px;
 }

 .ep-member-intro-lead {
     margin: 8px 0 0;
     font-size: 14px;
     line-height: 1.9;
     color: #5b5140;
     text-align: left;
 }

 .ep-member-alt {
     margin: 18px 0 0;
     text-align: center;
     font-size: 13px;
     color: #6b6152;
 }

 .ep-member-alt a {
     color: var(--ep-gold-deep, #7b592f);
     font-weight: 600;
     text-decoration: underline;
 }

 /* Logged-in note */
 .ep-member-form .ep-member-note {
     font-size: 14px;
     color: #5b5140;
 }

 .ep-member-form .ep-member-note a {
     color: var(--ep-gold-deep, #7b592f);
     font-weight: 600;
     text-decoration: underline;
 }

 /* CTA aside — dark luxe panel */
 .ep-member-cta {
     background: linear-gradient(160deg, #2c383d 0%, #1b2427 100%);
     border: 1px solid rgba(188, 149, 92, 0.35);
     border-radius: var(--ep-radius, 4px);
     box-shadow: var(--ep-shadow-md, 0 4px 12px rgba(0, 0, 0, .08));
     padding: clamp(24px, 3.4vw, 38px);
     color: #e6e0d4;
     box-sizing: border-box;
 }

 .ep-member-cta-eyebrow {
     margin: 0 0 10px;
     font-size: 11px;
     letter-spacing: .22em;
     color: var(--ep-gold, #BC955C);
     text-transform: uppercase;
 }

 .ep-member-cta-title {
     margin: 0 0 12px;
     font-family: var(--ep-font-serif, "Noto Serif JP", serif);
     font-size: clamp(18px, 2.4vw, 22px);
     font-weight: 600;
     letter-spacing: .04em;
     color: #fff;
 }

 .ep-member-cta-lead {
     margin: 0 0 16px;
     font-size: 14px;
     line-height: 1.9;
     color: #cfc8ba;
 }

 .ep-member-benefits {
     list-style: none;
     margin: 0 0 22px;
     padding: 0;
 }

 .ep-member-benefits li {
     position: relative;
     padding: 0 0 0 26px;
     margin: 0 0 11px;
     font-size: 13.5px;
     line-height: 1.7;
     color: #ded7c8;
 }

 .ep-member-benefits li::before {
     content: "";
     position: absolute;
     left: 3px;
     top: 4px;
     width: 7px;
     height: 12px;
     border-right: 2px solid var(--ep-gold, #BC955C);
     border-bottom: 2px solid var(--ep-gold, #BC955C);
     transform: rotate(45deg);
 }

 .ep-member-cta-actions {
     margin: 0;
 }

 /* Member action buttons */
 .ep-member-btn {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     width: 100%;
     min-height: 50px;
     padding: 13px 26px;
     border-radius: var(--ep-radius, 4px);
     font-family: var(--ep-font-serif, "Noto Serif JP", serif);
     font-size: 15px;
     font-weight: 600;
     letter-spacing: .06em;
     text-decoration: none;
     box-sizing: border-box;
     transition: color .2s ease, background .2s ease, border-color .2s ease;
 }

 .ep-member-btn-on-dark {
     background: transparent;
     color: var(--ep-gold, #BC955C);
     border: 1px solid var(--ep-gold, #BC955C);
 }

 .ep-member-btn-on-dark:hover {
     background: var(--ep-gold, #BC955C);
     color: #1b2226;
 }

 /* Login page — legacy register CTA (page-content .btn_type3) → Secondary button.
    Scoped via :has() to the login page only, so the global .btn_type3 elsewhere is
    untouched AND no post-content edit is needed (editing the JA page would trigger the
    OpenAI multilingual re-sync — see class-ep-fixed-page-multilingual-sync). */
 .entry-content:has(.ep-member-form-login) .btn_type3 {
     text-align: center !important;
     max-width: 560px;
     margin: 12px auto 0 !important;
     padding: 0 !important;
     background: none !important;
     border: 0 !important;
     box-shadow: none !important;
 }

 .entry-content:has(.ep-member-form-login) .btn_type3 a {
     display: inline-flex !important;
     align-items: center;
     justify-content: center;
     gap: 8px;
     min-width: 260px;
     min-height: 50px;
     padding: 13px 30px !important;
     background: transparent !important;
     color: var(--ep-gold-deep, #7b592f) !important;
     border: 1px solid var(--ep-gold, #BC955C) !important;
     border-radius: var(--ep-radius, 4px) !important;
     font-family: var(--ep-font-serif, "Noto Serif JP", serif) !important;
     font-size: 15px !important;
     font-weight: 600 !important;
     letter-spacing: .06em !important;
     text-decoration: none !important;
     box-shadow: none !important;
     transition: color .2s ease, background .2s ease, border-color .2s ease;
 }

 .entry-content:has(.ep-member-form-login) .btn_type3 a:hover {
     background: var(--ep-ink, #111) !important;
     color: var(--ep-gold, #BC955C) !important;
     border-color: var(--ep-gold, #BC955C) !important;
 }

 /* ep_register_form — カスタム会員登録フォーム（未使用の独自フォーム。互換のため残置） */
 .ep-register-inner-form {
     padding: 0;
 }

 .ep-register-title {
     font-size: 1.25rem;
     font-weight: 700;
     margin: 0 0 1.2em;
     color: #1a1a1a;
 }

 .ep-register-field {
     margin-bottom: 1.2em;
 }

 .ep-register-field label {
     display: block;
     font-size: .875rem;
     font-weight: 600;
     margin-bottom: 4px;
     color: #333;
 }

 .ep-register-field input[type="text"],
 .ep-register-field input[type="email"],
 .ep-register-field input[type="tel"] {
     display: block;
     width: 100%;
     padding: 8px 10px;
     font-size: .95rem;
     border: none;
     border-bottom: 1px solid #ccc;
     background: transparent;
     color: #222;
     outline: none;
     box-sizing: border-box;
     transition: border-color .15s;
 }

 .ep-register-field input:focus {
     border-bottom-color: rgba(188, 149, 92, .9);
 }

 .ep-register-req {
     color: #c00;
     font-style: normal;
 }

 .ep-register-msg {
     font-size: .875rem;
     min-height: 1.2em;
     margin: .5em 0;
 }

 .ep-register-msg--error {
     color: #c00;
 }

 .ep-register-submit-row {
     margin: 1.4em 0 .6em;
     text-align: right;
 }

 .ep-register-btn {
     display: inline-block;
     padding: 8px 28px;
     font-size: .95rem;
     font-weight: 600;
     letter-spacing: .05em;
     color: #fff;
     background: rgba(188, 149, 92, .85);
     border: 1px solid rgba(188, 149, 92, .6);
     border-radius: 3px;
     cursor: pointer;
     transition: background .15s;
 }

 .ep-register-btn:hover {
     background: rgba(188, 149, 92, 1);
 }

 .ep-register-btn:disabled {
     opacity: .6;
     cursor: default;
 }

 .ep-register-required-note {
     font-size: .8rem;
     color: #888;
     margin: .4em 0 0;
 }

 .ep-register-note {
     font-size: .85rem;
     color: #888;
     margin-top: 1em;
     text-align: center;
 }

 .ep-register-success {
     padding: 1.2em 0;
     text-align: center;
 }

 .ep-register-success-msg {
     font-size: 1rem;
     color: #2a7a4f;
     font-weight: 600;
 }

 #header+hr {
     display: none;
 }

 /* Room summary toggle (legacy-like) */
 .roomsummary-intro-details {
     margin: 0 0 12px;
 }

 .roomsummary-intro-details summary {
     list-style: none;
     cursor: pointer;
 }

 .roomsummary-intro-details summary::-webkit-details-marker {
     display: none;
 }

 .roomsummary-intro-summary .more-toggle {
     display: inline-block;
     margin-left: 8px;
     padding: 2px 8px;
     border-radius: 4px;
     background: #f4f1e6;
     color: #6b4b00;
     font-size: 0.85rem;
 }

 .roomsummary-intro-details[open] .more-toggle::after {
     content: "閉じる";
 }

 .roomsummary-intro-details:not([open]) .more-toggle::after {
     content: "全文表示";
 }

 .roomsummary-intro-details[data-lang="en"][open] .more-toggle::after {
     content: "Close";
 }

 .roomsummary-intro-details[data-lang="en"]:not([open]) .more-toggle::after {
     content: "Read more";
 }

 .roomsummary-intro-details[data-lang="zh"][open] .more-toggle::after {
     content: "关闭";
 }

 .roomsummary-intro-details[data-lang="zh"]:not([open]) .more-toggle::after {
     content: "全文显示";
 }

 .ep-building .roomsummary-intro-details,
 .ep-building .roomsummary-intro-details summary {
     border: 0;
     outline: 0;
     box-shadow: none;
 }

 .ep-building .roomsummary-intro-details .roomsummary-intro-summary {
     display: flex;
     justify-content: flex-end;
 }

 .ep-feature-more .more-toggle::after {
     content: attr(data-open-label) !important;
 }

 .ep-feature-more[open] .more-toggle::after {
     content: attr(data-close-label) !important;
 }

 .ep-search .ep-search-advanced>.roomsummary-intro-summary {
     display: flex;
     justify-content: flex-end;
     width: 100%;
 }

 .ep-lightbox-close,
 .ep-lightbox-prev,
 .ep-lightbox-next {
     position: absolute;
     background: rgba(0, 0, 0, 0.6);
     color: #fff;
     border: 0;
     padding: 8px 12px;
     cursor: pointer;
 }

 .ep-lightbox-close {
     top: -40px;
     right: 0;
 }

 .ep-lightbox-prev {
     left: -40px;
     top: 50%;
     transform: translateY(-50%);
 }

 .ep-lightbox-next {
     right: -40px;
     top: 50%;
     transform: translateY(-50%);
 }

 .ep-cta-buttons.wp-block-buttons {
     display: flex;
     flex-wrap: wrap;
     gap: 12px;
     align-items: center;
     margin: 24px 0;
 }

 .ep-cta-buttons.wp-block-buttons .wp-block-button {
     display: inline-flex;
     margin: 0;
 }

 .ep-cta-buttons.wp-block-buttons .wp-block-button__link {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     min-height: 44px;
     white-space: normal;
     text-align: center;
     line-height: 1.4;
 }

 .ep-building-list-intro,
 .ep-building-list-cta {
     margin: 24px 0;
 }

 .ep-building-list-controls {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
     gap: 12px;
     margin: 24px 0 12px;
 }

 .ep-building-list-controls label {
     display: flex;
     flex-direction: column;
     gap: 6px;
     font-weight: 600;
 }

 .ep-building-list-controls input,
 .ep-building-list-controls select {
     width: 100%;
     min-height: 42px;
     box-sizing: border-box;
 }

 .ep-building-list-count {
     margin: 12px 0;
     font-weight: 600;
 }

 @media (max-width: 640px) {
     .ep-cta-buttons.wp-block-buttons {
         flex-direction: column;
         align-items: stretch;
     }

     .ep-cta-buttons.wp-block-buttons .wp-block-button,
     .ep-cta-buttons.wp-block-buttons .wp-block-button__link {
         width: 100%;
     }
 }
