.cr-page .section-head > p{max-width:880px;margin-top:22px;color:#4f4f49;line-height:2}
.cr-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:40px}
.cr-card-grid.cr-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cr-card{padding:32px;background:#fff;border:1px solid #deddd5;border-radius:16px}
.cr-card .cr-icon{margin-bottom:24px}.cr-card h3{margin:0 0 14px;font-size:22px}.cr-card p{margin:0;color:#55554e;line-height:1.85}
.cr-icon{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:50%;background:var(--yellow,#ffd84a);color:#111}.cr-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cr-image-card{overflow:hidden;padding:0}.cr-image-card>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.cr-image-card-body{position:relative;padding:30px 32px 32px}.cr-image-card-body .cr-icon{position:absolute;top:0;right:30px;transform:translateY(-50%);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.cr-notice,.cr-service-note{display:flex;gap:20px;align-items:flex-start;margin-top:30px;padding:26px 30px;border-radius:16px;background:#fff7d7;border-left:5px solid var(--yellow,#ffd84a)}
.cr-notice strong{font-size:18px}.cr-notice p{margin:6px 0 0;line-height:1.8}.cr-important{background:#fff3ed;border-left-color:#e76a3b}
.cr-square-notice{border-radius:0}
.cr-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:40px}
.cr-contact-card{position:relative;display:block;min-height:190px;box-sizing:border-box;padding:34px 30px;border:1px solid #deddd5;border-radius:16px;background:#fff;color:#111;text-decoration:none;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.cr-contact-card:hover{transform:translateY(-3px);border-color:var(--blue,#2d7f99);box-shadow:0 12px 28px rgba(22,43,52,.09)}
.cr-contact-card h3{margin:2px 0 12px;font-size:20px}.cr-contact-card p{margin:0;color:#55554e;line-height:1.75}.cr-contact-line{border:2px solid #06c755;background:#f5fff8}.cr-contact-line:hover{border-color:#06c755;box-shadow:0 12px 28px rgba(6,199,85,.14)}.cr-contact-recommend{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:5px 12px;border-radius:99px;background:#06c755;color:#fff;font-size:12px;font-weight:700;white-space:nowrap}
.section-soft{background:transparent}
.cr-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 24px;margin:38px 0 0;padding:0;list-style:none}
.cr-check-grid li{position:relative;padding:22px 22px 22px 55px;border-radius:14px;background:#fff;line-height:1.65}
.cr-check-grid li::before{content:'✓';position:absolute;left:20px;top:20px;color:var(--blue,#2d7f99);font-weight:900}
.cr-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:42px;align-items:stretch}
.cr-price{position:relative;padding:34px 28px;text-align:center;background:#fff;border:2px solid var(--yellow,#ffd84a);border-radius:16px}.cr-price.is-featured{border:2px solid var(--blue,#2d7f99)}
.cr-price h3{font-family:Poppins,sans-serif;letter-spacing:.12em;color:#b48700}.cr-price.is-featured h3{color:var(--blue,#2d7f99)}.cr-price-value{margin:20px 0 12px}.cr-price-value strong{font-family:Poppins,sans-serif;font-size:44px}.cr-price-value small{display:block;margin-top:4px}
.cr-recommend{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);padding:6px 14px;border-radius:99px;background:var(--blue,#2d7f99);color:#fff;font:700 11px Poppins,sans-serif;letter-spacing:.1em}
.cr-conditions{width:100%;box-sizing:border-box;margin:28px 0 0;padding:28px 34px;border:2px solid var(--blue,#2d7f99);border-radius:16px;background:#fff}.cr-conditions h3{margin-top:0}.cr-conditions ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 34px;margin-bottom:0;padding:0;list-style:none;line-height:1.75}.cr-conditions li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:8px;align-items:start}.cr-conditions li::before{content:'●';color:var(--blue,#2d7f99);font-size:10px;line-height:2.8;text-align:center}
.section-cta{text-align:center;margin-top:36px}.cr-service-note{background:#f7f6f1}.cr-service-note h3{margin:3px 0 8px;font-size:20px;line-height:1.5}.cr-service-note p{margin:0;line-height:1.8}
.cr-check-list{display:grid;gap:18px;margin-top:40px}.cr-check-list article{display:grid;grid-template-columns:64px 1fr;gap:22px;padding:28px 32px;border:1px solid #deddd5;border-radius:16px;background:#fff}.cr-check-list article>span{font:700 18px Poppins,sans-serif;color:var(--blue,#2d7f99)}.cr-check-list h3{margin:0 0 10px;font-size:21px}.cr-check-list p{margin:0;line-height:1.85;color:#55554e}.cr-check-list a{display:inline-block;margin-top:12px;color:var(--blue,#2d7f99);font-weight:700;text-underline-offset:4px}
.cr-form{max-width:960px;margin:40px auto 0}.cr-form fieldset{margin:0 0 32px;padding:0;border:0}.cr-form legend{margin-bottom:20px;font-size:18px;font-weight:700}.cr-choice-accordions{display:grid;gap:12px}.cr-choice-accordions details{overflow:hidden;border:1px solid #d7d6cf;border-radius:12px;background:#fff}.cr-choice-accordions summary{position:relative;padding:19px 54px 19px 22px;cursor:pointer;font-size:17px;font-weight:700;list-style:none}.cr-choice-accordions summary::-webkit-details-marker{display:none}.cr-choice-accordions summary::after{content:'＋';position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--blue,#2d7f99);font-size:22px}.cr-choice-accordions details[open] summary::after{content:'−'}.cr-choice-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px;padding:5px 22px 22px;border-top:1px solid #deddd5;background:#fff}.cr-choice-panel label{display:flex;gap:9px;align-items:flex-start;margin-top:14px;line-height:1.5}
.cr-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.cr-form>label,.cr-field-row label{display:block;margin-bottom:24px;font-weight:700}.cr-form input[type=text],.cr-form input[type=email],.cr-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:9px;padding:15px 16px;border:1px solid #c9c8c0;border-radius:9px;background:#fff;font:inherit}.cr-form input:focus,.cr-form textarea:focus{outline:3px solid rgba(45,127,153,.18);border-color:var(--blue,#2d7f99)}.cr-consent{display:flex!important;gap:10px;align-items:center;margin:0 0 12px!important;font-weight:700}.cr-consent input{flex:0 0 auto}.required-mark,.optional-mark{display:inline-block;padding:2px 7px;border-radius:4px;font-size:12px}.required-mark{background:var(--blue,#2d7f99);color:#fff}.optional-mark{background:#e9e8e1;color:#555}.cr-form-note{margin-top:16px;color:#666;font-size:13px}
.cr-privacy-consent{margin:6px 0 28px}.cr-privacy-box{max-height:190px;overflow-y:auto;box-sizing:border-box;padding:20px 22px;border:1px solid #d7d6cf;border-radius:12px;background:#f7f6f1;color:#505049;font-size:13px;line-height:1.8;scrollbar-gutter:stable}.cr-privacy-box:focus{outline:3px solid rgba(45,127,153,.18);border-color:var(--blue,#2d7f99)}.cr-privacy-box h3{margin:0 0 12px;color:#111;font-size:16px}.cr-privacy-box h4{margin:18px 0 5px;color:#222;font-size:14px}.cr-privacy-box p{margin:0 0 8px}.cr-privacy-date{margin-top:20px!important;text-align:right}
.cr-form input::placeholder,.cr-form textarea::placeholder{color:#b8b8b2;opacity:1}
.cr-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:36px}.cr-related a{display:flex;align-items:center;gap:16px;min-height:100px;padding:18px 22px;border:1px solid #deddd5;border-radius:16px;background:#fff;color:#111;text-decoration:none;transition:transform .22s ease,border-color .22s ease,background-color .22s ease}.cr-related a:hover{transform:translateY(-3px);border-color:var(--blue,#2d7f99);background:#fffefa}.cr-related .cr-icon{flex-basis:48px;width:48px;height:48px;font-size:15px}.cr-related span:not(.cr-icon){font-weight:700}.cr-related b{margin-left:auto;color:var(--blue,#2d7f99);font-size:24px;transition:transform .22s ease}.cr-related a:hover b{transform:translateX(4px)}
.cr-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;margin-top:40px}.cr-faq-grid details{align-self:start;border:1px solid #deddd5;border-radius:14px;background:#fff}.cr-faq-grid summary{position:relative;padding:22px 58px 22px 22px;cursor:pointer;list-style:none;font-weight:700;line-height:1.65}.cr-faq-grid summary::-webkit-details-marker{display:none}.cr-faq-grid summary span{display:flex;gap:13px}.cr-faq-grid summary b{color:var(--blue,#2d7f99);font:700 18px Poppins,sans-serif}.cr-faq-grid summary i{position:absolute;right:22px;top:50%;width:18px;height:18px;transform:translateY(-50%)}.cr-faq-grid summary i::before,.cr-faq-grid summary i::after{content:'';position:absolute;top:8px;left:0;width:18px;height:2px;background:var(--blue,#2d7f99)}.cr-faq-grid summary i::after{transform:rotate(90deg);transition:transform .2s ease}.cr-faq-grid details[open] summary i::after{transform:rotate(0)}.cr-faq-grid details>p{margin:0;padding:0 22px 24px 53px;color:#55554e;line-height:1.85}
@media(max-width:900px){.cr-card-grid,.cr-check-grid,.cr-related,.cr-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cr-price-grid{grid-template-columns:1fr}.cr-price{max-width:520px;width:100%;box-sizing:border-box;margin:auto}.cr-choice-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.cr-faq-grid{grid-template-columns:1fr}}
@media(max-width:640px){.cr-card-grid,.cr-card-grid.cr-two,.cr-check-grid,.cr-related,.cr-contact-grid,.cr-field-row{grid-template-columns:1fr}.cr-card{padding:24px}.cr-card h3{font-size:19px;line-height:1.45}.cr-contact-card{min-height:0;padding:25px 20px}.cr-conditions{padding:24px}.cr-conditions h3{margin:0 0 16px;font-size:20px;line-height:1.45}.cr-conditions ul{grid-template-columns:1fr;gap:14px 0}.cr-check-list article{grid-template-columns:42px 1fr;padding:23px 20px;gap:10px}.cr-choice-panel{grid-template-columns:1fr}.cr-square-notice{display:block;padding:24px 22px}.cr-square-notice strong{display:block;margin:0 0 12px;font-size:18px;line-height:1.5}.cr-square-notice p{margin:0;line-height:1.85}.cr-service-note{display:block;padding:22px}.cr-service-note h3{margin:0 0 10px;font-size:18px;line-height:1.45}}
@media(prefers-reduced-motion:reduce){.cr-related a,.cr-related b,.cr-contact-card{transition:none}.cr-related a:hover,.cr-related a:hover b,.cr-contact-card:hover{transform:none}}

/* Contact Form 7 integration for /reservation/ */
.cr-cf7-form .wpcf7-form{margin:0}
.cr-cf7-form .wpcf7-form p{margin:0 0 24px}
.cr-cf7-form .wpcf7-form label{display:block;font-weight:700;line-height:1.7}
.cr-cf7-form .wpcf7-form-control-wrap{display:block;margin-top:9px}
.cr-cf7-form .wpcf7-text,
.cr-cf7-form .wpcf7-email,
.cr-cf7-form .wpcf7-tel,
.cr-cf7-form .wpcf7-number,
.cr-cf7-form .wpcf7-date,
.cr-cf7-form .wpcf7-select,
.cr-cf7-form .wpcf7-textarea{display:block;width:100%;box-sizing:border-box;padding:15px 16px;border:1px solid #c9c8c0;border-radius:9px;background:#fff;color:inherit;font:inherit}
.cr-cf7-form .wpcf7-text:focus,
.cr-cf7-form .wpcf7-email:focus,
.cr-cf7-form .wpcf7-tel:focus,
.cr-cf7-form .wpcf7-number:focus,
.cr-cf7-form .wpcf7-date:focus,
.cr-cf7-form .wpcf7-select:focus,
.cr-cf7-form .wpcf7-textarea:focus{outline:3px solid rgba(45,127,153,.18);border-color:var(--blue,#2d7f99)}
.cr-cf7-form .wpcf7-checkbox,
.cr-cf7-form .wpcf7-radio{display:grid;gap:10px;margin-top:10px}
.cr-cf7-form .wpcf7-list-item{margin:0}
.cr-cf7-form .wpcf7-list-item label{display:flex;align-items:flex-start;gap:8px;font-weight:500}
.cr-cf7-form .wpcf7-list-item input{margin-top:.35em}
.cr-cf7-form .wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;border:0;border-radius:999px;background:#111;color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .45s cubic-bezier(.2,.7,.2,1)}
.cr-cf7-form .wpcf7-submit:hover{color:#fff;transform:translateY(-2px);opacity:.9}
.cr-cf7-form .wpcf7-spinner{vertical-align:middle}
/* Validation tip styles are defined in the reservation form section below. */
.cr-cf7-form .wpcf7-response-output{margin:24px 0 0!important;padding:14px 16px!important;border-width:1px!important;border-radius:8px}
@media (max-width: 767px){.cr-cf7-form .wpcf7-submit{width:100%}}


/* Reservation form v0.3.4: preserve the original prototype layout with CF7 markup. */
.cr-cf7-form .wpcf7-form > fieldset{margin:0 0 32px;padding:0;border:0}
.cr-cf7-form .wpcf7-form > fieldset > legend{margin-bottom:20px;font-size:18px;font-weight:700}
.cr-cf7-form .cr-choice-panel > .wpcf7-form-control-wrap{display:block;width:100%}
.cr-cf7-form .cr-choice-panel .wpcf7-checkbox{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px;margin:0}
.cr-cf7-form .cr-choice-panel .wpcf7-list-item{display:block;margin:14px 0 0}
.cr-cf7-form .cr-choice-panel .wpcf7-list-item label{display:flex;gap:9px;align-items:flex-start;margin:0;font-weight:500;line-height:1.5}
.cr-cf7-form .cr-choice-panel .wpcf7-list-item input{margin-top:.28em}
.cr-cf7-form .cr-field-row .wpcf7-form-control-wrap,
.cr-cf7-form > .wpcf7 form > label .wpcf7-form-control-wrap{display:block}
.cr-cf7-form .wpcf7-form > label{display:block;margin-bottom:24px;font-weight:700}
.cr-cf7-form .wpcf7-form .cr-field-row label{display:block;margin-bottom:24px;font-weight:700}
.cr-cf7-form .wpcf7-form .cr-field-row .wpcf7-form-control-wrap{margin-top:9px}
.cr-cf7-form .wpcf7-form > label > .wpcf7-form-control-wrap{margin-top:9px}
.cr-cf7-form .cr-privacy-consent .wpcf7-form-control-wrap{display:inline-block;margin:0}
.cr-cf7-form .cr-consent .wpcf7-acceptance{display:inline-block;margin:0}
.cr-cf7-form .cr-consent .wpcf7-list-item{margin:0}
.cr-cf7-form .cr-consent .wpcf7-list-item label{display:flex;align-items:center;gap:9px;margin:0;font-weight:700}
.cr-cf7-form .cr-consent .wpcf7-list-item input{margin:0}
.cr-cf7-form .cr-privacy-box p{margin:0 0 8px}
.cr-cf7-form .cr-privacy-box h3{margin:0 0 12px}
.cr-cf7-form .cr-privacy-box h4{margin:18px 0 5px}
.cr-cf7-form .wpcf7-not-valid-tip{display:block;margin-top:7px;color:#b42318;font-size:13px;font-weight:600}
.cr-cf7-form .cr-choice-panel .wpcf7-not-valid-tip{grid-column:1/-1}
.cr-cf7-form .wpcf7-form-control.wpcf7-not-valid{border-color:#b42318}
.cr-cf7-form .wpcf7-submit{min-width:220px;min-height:56px;padding:15px 30px;border-radius:999px;background:#111;color:#fff;font-weight:700}
.cr-cf7-form .wpcf7-submit:hover{background:#111;color:#fff}
@media(max-width:900px){.cr-cf7-form .cr-choice-panel .wpcf7-checkbox{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.cr-cf7-form .cr-choice-panel .wpcf7-checkbox{grid-template-columns:1fr}.cr-cf7-form .wpcf7-submit{width:100%}}

/* v0.5.63: reservation notice heading above body, without a narrow left column */
.cr-page .cr-important.cr-square-notice{display:block}
.cr-page .cr-important.cr-square-notice > strong{display:block;margin:0 0 12px;max-width:100%;font-size:18px;line-height:1.55;writing-mode:horizontal-tb;word-break:normal;overflow-wrap:anywhere}
.cr-page .cr-important.cr-square-notice > p{display:block;margin:0;line-height:1.85}
