
.tt-root #home *{box-sizing:border-box}.tt-root{scroll-behavior:smooth}.tt-root #home{margin:0;color:#4b352c;background:#fffdfb;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;line-height:1.9}.tt-root #home .site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 5%;background:rgba(255,253,251,.96);border-bottom:1px solid #eaded8}.tt-root #home .brand{text-decoration:none;color:#5a392b;display:flex;flex-direction:column}.tt-root #home .brand-main{font-size:1.15rem;letter-spacing:.08em}.tt-root #home .brand-sub{font-size:.72rem;color:#b77c74}.tt-root #home .nav{display:flex;gap:20px}.tt-root #home .nav a,.tt-root #home .text-link{color:#6b4a3d;text-decoration:none}.tt-root #home .nav a:hover,.tt-root #home .text-link:hover{color:#dd7f83}.tt-root #home .menu-button{display:none;border:0;background:none;font-size:1.6rem;color:#6b4a3d}.tt-root #home .hero img{display:block;width:100%;height:auto;max-height:640px;object-fit:cover}.tt-root #home .section{padding:90px 7%}.tt-root #home .soft-bg{background:linear-gradient(180deg,#fff7f6,#fffdfb)}.tt-root #home .eyebrow{text-align:center;color:#d7787f;letter-spacing:.18em;font-size:.9rem;margin:0 0 8px}.tt-root #home .section h1,.tt-root #home .section h2{text-align:center;font-weight:500;line-height:1.55;margin:0 auto 34px}.tt-root #home .section h1{font-size:clamp(1.8rem,4vw,3.2rem);max-width:950px}.tt-root #home .section h2{font-size:clamp(1.65rem,3.2vw,2.5rem)}.tt-root #home .lead{max-width:850px;margin:30px auto 0;text-align:center;font-size:1.05rem}.tt-root #home .narrow{max-width:720px}.tt-root #home .concerns{max-width:850px;margin:40px auto;display:grid;gap:14px}.tt-root #home .concerns p{margin:0;padding:15px 20px;border-left:4px solid #e8a4a7;background:#fff8f7}.tt-root #home .cards{max-width:1100px;margin:45px auto;display:grid;gap:24px}.tt-root #home .cards.three{grid-template-columns:repeat(3,1fr)}.tt-root #home .cards.two{grid-template-columns:repeat(2,1fr)}.tt-root #home .card{position:relative;background:white;border:1px solid #eadbd6;border-radius:22px;padding:30px;box-shadow:0 8px 30px rgba(111,72,57,.07)}.tt-root #home .card h3{margin:6px 0 12px;font-weight:500}.tt-root #home .icon{text-align:center;font-size:2.4rem}.tt-root #home .center-note{max-width:850px;margin:35px auto 0;text-align:center}.tt-root #home .price-card{text-align:center}.tt-root #home .price{font-size:2rem;margin:10px 0;color:#774938}.tt-root #home .price span{font-size:.8rem}.tt-root #home .featured{border:2px solid #e7a0a5;transform:translateY(-8px)}.tt-root #home .badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:#e7858b;color:white;border-radius:999px;padding:3px 18px;font-size:.8rem}.tt-root #home .detail-button,.tt-root #home .submit-button{border:0;border-radius:999px;background:#df8087;color:white;padding:12px 24px;font:inherit;cursor:pointer}.tt-root #home .detail-button:hover,.tt-root #home .submit-button:hover{filter:brightness(.95)}.tt-root #home .small-panel{max-width:950px;margin:10px auto;display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding:20px;border-radius:16px;background:#f8eeee}.tt-root #home .small-panel span{padding:7px 12px;background:white;border-radius:999px}.tt-root #home .faq-list{max-width:900px;margin:40px auto}.tt-root #home .faq-list details{border-bottom:1px solid #e7d8d2;padding:18px 0}.tt-root #home .faq-list summary{cursor:pointer;font-size:1.08rem}.tt-root #home .faq-list p{padding:0 20px}.tt-root #home .text-link{display:block;text-align:center}.tt-root #home .profile-grid{max-width:1050px;margin:auto;display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center}.tt-root #home .profile-grid h2{text-align:left;margin-bottom:25px}.tt-root #home .profile-grid .eyebrow{text-align:left}.tt-root #home .profile-grid img{width:100%;max-height:620px;object-fit:cover;border-radius:30px;box-shadow:0 12px 35px rgba(95,55,43,.14)}.tt-root #home .quote{font-size:1.25rem;color:#d2767d}.tt-root #home .contact-section{background:#fffaf6}.tt-root #home .contact-form{max-width:920px;margin:45px auto 0;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.tt-root #home .contact-form label{display:flex;flex-direction:column;gap:7px}.tt-root #home .contact-form input,.tt-root #home .contact-form select,.tt-root #home .contact-form textarea{width:100%;border:1px solid #dbcac3;border-radius:12px;background:white;padding:13px;font:inherit;color:#49342c}.tt-root #home .full{grid-column:1/-1}.tt-root #home .form-note{font-size:.88rem;color:#806b63}.tt-root #home .submit-button{justify-self:center;min-width:280px}.tt-root #home footer{text-align:center;background:#704f43;color:white;padding:55px 7%}.tt-root #home .footer-brand{font-size:1.3rem}.tt-root #home .future-links{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:25px 0;font-size:.85rem;color:#f2dedd}.tt-root #home dialog{width:min(620px,90vw);border:0;border-radius:22px;padding:35px;box-shadow:0 20px 70px rgba(0,0,0,.2)}.tt-root #home dialog::backdrop{background:rgba(45,28,22,.45)}.tt-root #home .dialog-close{float:right;border:0;background:none;font-size:1.8rem;cursor:pointer;color:#79584c}
@media(max-width:820px){.tt-root #home .menu-button{display:block}.tt-root #home .nav{display:none;position:absolute;top:72px;left:0;right:0;background:white;padding:22px;flex-direction:column;align-items:center;border-bottom:1px solid #eaded8}.tt-root #home .nav.open{display:flex}.tt-root #home .cards.three,.tt-root #home .cards.two,.tt-root #home .profile-grid,.tt-root #home .contact-form{grid-template-columns:1fr}.tt-root #home .featured{transform:none}.tt-root #home .profile-grid{gap:30px}.tt-root #home .profile-grid h2,.tt-root #home .profile-grid .eyebrow{text-align:center}.tt-root #home .section{padding:68px 6%}.tt-root #home .hero img{min-height:260px;object-fit:cover;object-position:center}.tt-root #home .full{grid-column:auto}}



.tt-root #home .intro h1 span{color:#4b352c;font-size:1.08em}
.tt-root #home .care-card{padding:0;overflow:hidden}
.tt-root #home .care-card .care-photo{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.tt-root #home .care-card .care-copy{padding:24px 28px 28px}
.tt-root #home .care-card h3{text-align:center}
.tt-root #home .price-note{max-width:900px;margin:-18px auto 28px;text-align:center;font-size:.9rem;color:#806b63}
.tt-root #home .travel-box{max-width:760px;margin:34px auto 0;padding:28px;border:1px solid #eadbd6;border-radius:22px;background:#fff8f7}
.tt-root #home .travel-box h3{text-align:center;margin:0 0 18px;font-weight:500}
.tt-root #home .travel-table{width:100%;border-collapse:collapse;background:#fff}
.tt-root #home .travel-table th,.tt-root #home .travel-table td{padding:13px 16px;border-bottom:1px solid #eadbd6;text-align:left}
.tt-root #home .travel-table tr:last-child th,.tt-root #home .travel-table tr:last-child td{border-bottom:0}
.tt-root #home .travel-table td{text-align:right;color:#b95f66;font-weight:700}
.tt-root #home .profile-grid{grid-template-columns:1fr 220px;max-width:960px}
.tt-root #home .profile-grid>img:not(.profile-photo){display:none}
.tt-root #home .profile-grid .profile-photo{width:100%;height:100%;border:0;border-radius:50%;object-fit:cover;transform:scale(1.1);box-shadow:none}
.tt-root #home .profile-photo-frame{width:210px;height:210px;border-radius:50%;overflow:hidden;border:6px solid #eaded8;background:#f7efeb;box-shadow:0 12px 35px rgba(95,55,43,.12)}
.tt-root #home .profile-grid .profile-message{font-size:1.02rem}
.tt-root #home .regular-note{max-width:820px;margin:26px auto 0;padding:18px 22px;border-radius:16px;background:#fff;border-left:4px solid #dc858a}
.tt-root #home .affiliate-grid{max-width:1000px;margin:38px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tt-root #home .affiliate-card{padding:28px;border:1px solid #eadbd6;border-radius:20px;background:#fff;text-align:center}
.tt-root #home .affiliate-card .affiliate-icon{font-size:2.2rem}
.tt-root #home .affiliate-card h3{font-weight:500;margin:8px 0}
.tt-root #home .affiliate-card .coming-soon{display:inline-block;margin-top:8px;padding:4px 13px;border-radius:999px;background:#f5e5e2;color:#8a5b50;font-size:.82rem}
.tt-root #home .affiliate-disclosure{text-align:center;font-size:.82rem;color:#806b63}
.tt-root #home .location-grid{max-width:1050px;margin:38px auto 0;display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:stretch}
.tt-root #home .location-info{padding:30px;border-radius:22px;background:#fff;border:1px solid #eadbd6}
.tt-root #home .location-info address{font-style:normal}
.tt-root #home .map-frame{width:100%;min-height:330px;border:0;border-radius:22px}
.tt-root #home .line-note{padding:16px 18px;border-radius:14px;background:#f0f8ee;color:#3e613e}
.tt-root #home .line-button{background:#06c755}
.tt-root #home .line-button:hover{filter:brightness(.94)}
.tt-root #home footer{padding:42px 7%}
@media(max-width:820px){.tt-root #home .profile-grid,.tt-root #home .location-grid,.tt-root #home .affiliate-grid{grid-template-columns:1fr}.tt-root #home .profile-photo-frame{margin:0 auto;grid-row:1}.tt-root #home .travel-table th,.tt-root #home .travel-table td{padding:11px 10px}.tt-root #home .care-card .care-copy{padding:20px}.tt-root #home .affiliate-grid{gap:14px}}

.tt-root .tt-content{padding:0;max-width:none}.tt-root #home main{padding:0;max-width:none}.tt-root #home .hero{margin:0}.tt-root #home .section{margin:0}.tt-root #home .intro{border:0;border-radius:0;background:#fffdfb}.tt-root #home .price{background:none;padding:0}.tt-root #home .profile-photo-frame{border:0;box-shadow:none}.tt-root #home .affiliate-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.tt-root .tt-feature-nav{padding:10px 20px;justify-content:center;background:#fff7f6;overflow:auto}.tt-root .tt-content>section:not(#home){padding:24px}.tt-root #home dialog .dialog-close{margin:0}.tt-root #home .menu-button{border:0;background:transparent;padding:8px}.tt-root #home .small-editor{max-width:900px;margin:auto;text-align:left}@media(max-width:820px){.tt-root #home .affiliate-columns{grid-template-columns:1fr}.tt-root .tt-feature-nav{justify-content:flex-start}.tt-root .tt-feature-nav button{white-space:nowrap}}
/* Mobile reading: keep headings together by phrase, paragraphs aligned left. */
.tt-root #home .heading-unit{display:inline-block}
@media(max-width:600px){
 .tt-root #home{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .tt-root #home .site-header{background:#fffdfb;gap:10px;padding:12px 5%}
 .tt-root #home .brand{min-width:0}
 .tt-root #home .brand-main{font-size:clamp(14px,4.1vw,18px);letter-spacing:.03em}
 .tt-root #home .brand-sub{font-size:11px;letter-spacing:.04em}
 .tt-root #home .nav{top:100%}
 .tt-root #home .section{padding:48px 6%}
 .tt-root #home .section h1{font-size:clamp(20px,5.5vw,24px);line-height:1.65;letter-spacing:0;margin-bottom:26px;text-align:left}
 .tt-root #home .intro-title .heading-unit{display:block}
 .tt-root #home .intro-title .desktop-break{display:none}
 .tt-root #home .section h2{font-size:clamp(18px,5vw,22px);line-height:1.65;letter-spacing:0;margin-bottom:24px;text-align:left;text-wrap:balance}
 .tt-root #home .section h2 .heading-unit{display:block}
 .tt-root #home .lead,.tt-root #home .center-note{font-size:16px;line-height:1.9;text-align:left;text-wrap:pretty}
 .tt-root #home .intro>.lead:first-child{margin:0 auto 28px}
 .tt-root #home .concerns{margin:28px auto;gap:12px}
 .tt-root #home .concerns p{font-size:15px;line-height:1.85;padding:14px 16px;text-wrap:pretty}
 .tt-root #home .regular-note{font-size:15px;line-height:1.9;text-align:left;text-wrap:pretty}
 .tt-root #home .eyebrow{font-size:12px;letter-spacing:.1em;text-align:left}
 .tt-root #home .card{padding:22px}
 .tt-root #home .price-card{text-align:left}
 .tt-root #home .price-card .price{text-align:center}
 .tt-root #home .price-card .detail-button{display:block;margin-left:auto;margin-right:auto}
 .tt-root #home .price-card .badge{white-space:nowrap}
 .tt-root #home .small-panel{justify-content:flex-start}
 .tt-root #home .small-panel span{text-align:left}
 .tt-root #home .travel-note,.tt-root #home .price-note{text-align:left}
}

/* Readability and mobile layout refinements. */
.tt-root #home .hero{position:relative}
.tt-root #home .hero img{max-height:none;object-fit:contain;min-height:0}
.tt-root #home .hero-message{position:absolute;left:5%;top:22%;max-width:43%;color:#5a392b}
.tt-root #home .hero-message h2{font-size:clamp(19px,2.4vw,36px);font-weight:600;line-height:1.6}
.tt-root #home .hero-message p{font-size:clamp(12px,1.3vw,20px);margin:8px 0}
@media(max-width:600px){.tt-root #home .hero-message{position:static;max-width:none;padding:20px 6%;background:#faf4ee}.tt-root #home .hero-message h2{font-size:21px;margin:8px 0}.tt-root #home .hero-message p{font-size:13px}}
.tt-root #home .room-cards{align-items:stretch}
.tt-root #home .room-cards .card{display:flex;flex-direction:column;background:#fffdfb;border-radius:24px}
.tt-root #home .room-cards .card p{flex:1}
.tt-root #home .room-button,.tt-root .tt-return-nav button{border:1px solid #d8b4a8;border-radius:18px;background:#f7e9e4;color:#5a392b;padding:13px 20px;font:inherit;cursor:pointer;white-space:normal}
.tt-root #home .room-button:hover,.tt-root .tt-return-nav button:hover{background:#efddd5}
.tt-root #home .staff-entry{border-top:1px solid #eaded8;text-align:center;background:#fbf5ef}
.tt-root #home .staff-entry .eyebrow,.tt-root #home .staff-entry h2{text-align:center}
.tt-root .tt-return-nav{text-align:center;padding:20px}
.tt-root #manager{max-width:1000px;margin:auto;color:#4b352c;background:#fffdfb}
.tt-root #manager>form{padding:24px;border:1px solid #eadbd6;border-radius:22px;background:#fff}
.tt-root #manager details>summary{cursor:pointer;padding:8px 0;font-weight:600}
.tt-root #manager form{display:grid;gap:16px}
.tt-root #manager .staff-login{max-width:520px;margin:auto}
.tt-root #home .eyebrow,
.tt-root #home .brand-sub,
.tt-root #home .quote{
 color:#2f5d57;
 font-weight:700;
}
.tt-root #home .eyebrow{letter-spacing:.12em}
.tt-root #home .small-panel>strong{flex-basis:100%;text-align:center;font-size:1.08rem}

@media(max-width:600px){
 .tt-root #home .hero img{
  width:100%;
  height:auto;
  min-height:0;
  object-fit:contain;
  object-position:center;
 }
 .tt-root #home .intro-title .heading-unit{display:block;white-space:nowrap}
 .tt-root #home .intro-title>br{display:none}
 .tt-root #home .consult-note{
  max-width:32em;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
 }
 .tt-root #home .section h2.first-title{text-align:center}
 .tt-root #home .small-panel{
  flex-direction:column;
  align-items:center;
  justify-content:center;
 }
 .tt-root #home .small-panel>strong{width:100%;margin-bottom:4px}
 .tt-root #home .small-panel span{width:min(100%,280px);text-align:center}
}

/* 1.2.0: 下部案内をひとつにまとめ、プロフィール写真を静かに見せる。 */
.tt-root #home .profile-grid{grid-template-columns:1fr 170px}
.tt-root #home .profile-photo-frame{width:160px;height:160px;border:0;background:transparent;box-shadow:none}
.tt-root #home .profile-grid .profile-photo{transform:scale(1.1);border:0;box-shadow:none}
.tt-root #home .booking-entry-panel{max-width:820px;margin:38px auto 0;padding:28px;text-align:center;border:1px solid #eadbd6;border-radius:22px;background:#fff}
.tt-root #home .booking-entry-panel h3{font-weight:500}
.tt-root #home footer.footer-hub{padding:70px 7% 30px;background:#ead8cc;color:#4b352c}
.tt-root #home .footer-inner{max-width:1050px;margin:auto}
.tt-root #home footer.footer-hub h2{margin:0 auto 30px;text-align:center;font-weight:500}
.tt-root #home footer.footer-hub .location-grid{text-align:left}
.tt-root #home footer.footer-hub .location-info{background:#fffdfb}
.tt-root #home footer.footer-hub .map-frame{background:#fff;display:block}
.tt-root #home .footer-actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:34px auto}
.tt-root #home .social-link{min-width:180px;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;border-radius:999px;background:#fff;color:#4b352c;text-decoration:none;border:1px solid #e4cbc5;font-family:system-ui,-apple-system,"Yu Gothic",sans-serif;font-weight:700}
.tt-root #home .social-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#06c755;color:#fff;font:700 11px/1 system-ui}
.tt-root #home .instagram-icon{background:linear-gradient(135deg,#5b51d8,#c13584 55%,#f77737);font-size:26px}
.tt-root #home footer.footer-hub .footer-brand{margin-top:42px;font-size:1.25rem}
.tt-root #home .staff-only-wrap{margin-top:28px}
.tt-root #home .staff-only-link{border:0;background:transparent;color:#806b63;padding:6px 10px;font:600 11px/1.4 system-ui,-apple-system,"Yu Gothic",sans-serif;letter-spacing:.14em;text-decoration:underline;text-underline-offset:4px;opacity:.75;cursor:pointer}
.tt-root #home .staff-only-link:hover{opacity:1;color:#4b352c}
@media(max-width:820px){.tt-root #home .profile-grid{grid-template-columns:1fr}.tt-root #home .profile-photo-frame{width:145px;height:145px}.tt-root #home footer.footer-hub{padding:52px 6% 30px}.tt-root #home .booking-entry-panel{text-align:left}.tt-root #home .booking-entry-panel .room-button{display:block;margin:20px auto 0}}

/* 1.2.2: 既存のお客さまの予約欄をホーム内に戻し、下部の配色を確実に固定する。 */
.tt-root #home .member-booking-section{background:#fff8f5}
.tt-root #home .member-booking-box{max-width:1050px;margin:36px auto 0;padding:30px;border:1px solid #e1c9bf;border-radius:24px;background:#fff;box-shadow:0 8px 30px rgba(111,72,57,.06)}
.tt-root #home .member-booking-box>h3{text-align:center;font-weight:600;color:#4b352c}
.tt-root #home .member-course-preview{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:24px auto}
.tt-root #home .member-course-preview strong{flex-basis:100%;text-align:center;color:#2f5d57}
.tt-root #home .member-course-preview span{padding:8px 14px;border-radius:999px;background:#f8eeee}
.tt-root #home .member-booking-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px;text-align:left}
.tt-root #home .member-booking-fields label{font-family:system-ui,-apple-system,"Yu Gothic",sans-serif;font-weight:600}
.tt-root #home .member-booking-button{display:block;width:max-content;max-width:100%;margin:26px auto 10px;padding:13px 26px;border:1px solid #d8aaa0;border-radius:999px;background:#f8e8e3;color:#5a392b;text-decoration:none;font:600 16px/1.5 system-ui,-apple-system,"Yu Gothic",sans-serif;cursor:pointer}
.tt-root #home .member-booking-note{text-align:center;color:#6b554c;font-size:.9rem}
.tt-root #home .member-reply-button{display:block;margin:18px auto 0}
.tt-root #home footer.footer-hub{background:#ead8cc!important;color:#4b352c!important}
.tt-root #home footer.footer-hub .footer-inner,.tt-root #home footer.footer-hub .location-info,.tt-root #home footer.footer-hub address,.tt-root #home footer.footer-hub p,.tt-root #home footer.footer-hub h2,.tt-root #home footer.footer-hub h3,.tt-root #home footer.footer-hub small{color:#4b352c}
.tt-root #home footer.footer-hub .location-info{background:#fffdfb!important}
.tt-root #home footer.footer-hub .footer-actions a{color:#4b352c!important}
@media(max-width:820px){.tt-root #home .member-booking-box{padding:20px 14px}.tt-root #home .member-booking-fields{grid-template-columns:1fr}.tt-root #home .member-course-preview{align-items:stretch;flex-direction:column}.tt-root #home .member-course-preview span{text-align:center}}

/* 1.2.3: 予約の入口をひと目で見つけられるカレンダーアイコン。 */
.tt-root #home .room-feature-icon{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;background:#f5dfda;color:#8a5543;box-shadow:0 7px 22px rgba(111,72,57,.1)}
.tt-root #home .room-feature-icon svg{width:43px;height:43px;display:block;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.tt-root #home .room-feature-icon-small{width:54px;height:54px;margin:0 auto 14px;box-shadow:none}
.tt-root #home .room-feature-icon-small svg{width:31px;height:31px}
.tt-root #home .room-feature-icon-story{background:#f8e5e1;color:#8a5543}
.tt-root #home .room-feature-icon-grooma{background:#e8f1ed;color:#39665d}
.tt-root #home .room-feature-icon-booking{background:#f5dfda;color:#8a5543}
.tt-root #home .booking-room-card{border-color:#dcb9ae;background:#fffaf8}
.tt-root #home .booking-room-button{background:#f7e4df;border-color:#d9afa4;font-weight:700}

/* 横幅の大きい要素がiPhoneでページ全体を押し広げないようにする。 */
.tt-root #home{width:100%;max-width:100%;overflow-x:clip}.tt-root #home main,.tt-root #home section,.tt-root #home footer,.tt-root #home .cards,.tt-root #home .location-grid{min-width:0;max-width:100%}.tt-root #home img,.tt-root #home iframe,.tt-root #home table{max-width:100%}.tt-root #home .travel-box{overflow-x:auto;-webkit-overflow-scrolling:touch}
