/* ==========================================================================
   Bamboo forest — Plan D "Refresh" override stylesheet
   Loaded after the theme CSS. Keeps the structure, palette and images of the
   current design and only refines typography, spacing, cards and buttons.
   ========================================================================== */
:root{
  --bf-green:#405442;      /* header band, footer, buttons (existing) */
  --bf-green-2:#2e8b57;    /* pickup name (existing) */
  --bf-gold:#b08136;       /* card border gradient start (existing) */
  --bf-gold-2:#eae0a2;     /* card border gradient end (existing) */
  --bf-brown:#8f8260;      /* copyright bar / MORE button (existing) */
  --bf-mint:#edf3ec;       /* feedback rows (existing) */
  --bf-ink:#2b332c;
  --bf-text:#4c524c;
  --bf-muted:#858b84;
  --bf-line:#e2e6df;
  --bf-radius:12px;
  --bf-shadow:0 18px 40px -28px rgba(64,84,66,.45);
  --bf-serif:"Libre Baskerville",Georgia,"Times New Roman",serif;
  --bf-sans:"Cabin","Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--bf-sans) !important;color:var(--bf-ink);-webkit-font-smoothing:antialiased}

/* ---- header ------------------------------------------------------------ */
header{min-height:0;padding:16px 0 0}
header #logo{width:236px}
#header_info{margin:0;padding:6px 0 0;max-width:none;font-weight:500;letter-spacing:.02em}
#header_info h1{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bf-brown);font-family:var(--bf-sans) !important;margin-bottom:6px}
#header_info .info_title{font-size:13px;color:var(--bf-muted);font-family:var(--bf-sans) !important;font-weight:500}
#header_info .time{font-size:24px;color:var(--bf-green);font-family:var(--bf-serif) !important;margin-bottom:22px !important;letter-spacing:.02em}
#header_info .time .info_title{font-size:12px;margin-right:8px;letter-spacing:.12em;text-transform:uppercase}
header nav{margin:-14px 0 0}
.nav_head{min-width:0;display:flex;justify-content:flex-end;align-items:center;gap:4px;float:none}
.nav_head li{padding:0 10px}
.nav_head li a p:first-of-type{font-family:var(--bf-sans);font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--bf-green);line-height:2.4}
.nav_head li a::after{top:auto;bottom:4px;height:2px;background:linear-gradient(90deg,var(--bf-gold),var(--bf-gold-2))}
/* CONTACT becomes the one primary button in the nav */
.nav_head li:nth-child(7) a{background:var(--bf-green);border-radius:999px;padding:0 18px;transition:.25s}
.nav_head li:nth-child(7) a p:first-of-type{color:#fff}
.nav_head li:nth-child(7) a::after{display:none}
.nav_head li:nth-child(7) a:hover{background:#2f4232;transform:translateY(-1px)}

/* ---- ticker band ------------------------------------------------------- */
#marquee{height:42px}
div.ticker{padding-top:10px;min-width:0}
div.ticker ul li{font-family:var(--bf-sans);font-size:13px;letter-spacing:.06em;color:#e9e4d2 !important}
/* 流れる文字は 1 行のまま（折り返すと li が縦に積み重なって帯からあふれ、SP で文字が 2 行になり流れて見えない）。待機中の li は ul の右外に置かれるので ul で切り取り、帯の右端の余白に文字の塊が出ないようにする（2026-10-12） */
div.ticker ul{overflow:hidden;position:relative}
div.ticker ul li{white-space:nowrap}

/* ---- slider ------------------------------------------------------------ */
.swiper-container{padding:22px 3px 46px}
.topslide .swiper-slide img{border-radius:10px;box-shadow:0 24px 50px -30px rgba(0,0,0,.55);transition:opacity .8s,transform .8s}
.topslide .swiper-slide:not(.swiper-slide-active) img{opacity:.5;transform:scale(.965)}
.topslide .swiper-pagination-bullet{background:#cfc9b6;width:8px;height:8px;transition:.3s}
.topslide .swiper-pagination-bullet-active{background:var(--bf-green);width:26px;border-radius:4px}

/* ---- section headings -------------------------------------------------- */
#content h2{margin:0 0 36px;line-height:1.2;color:var(--bf-muted);font-family:var(--bf-sans)}
#content h2 span{font-family:var(--bf-serif);font-size:32px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--bf-green);display:block;margin-bottom:6px}
#content h2::after{content:"";display:block;width:40px;height:2px;margin:16px auto 0;background:linear-gradient(90deg,var(--bf-gold),var(--bf-gold-2))}
#topnews h2{font-size:15px}

/* ---- welcome text ------------------------------------------------------ */
#news_pickup{margin:70px auto 80px}
#topnews .topnews_in{background:#fff;border:1px solid var(--bf-line);border-radius:var(--bf-radius);box-shadow:var(--bf-shadow);padding:44px 60px;max-width:900px;margin:0 auto}
#topnews .topnews_in h3{font-family:var(--bf-serif);font-weight:400;font-size:22px;color:var(--bf-green);letter-spacing:.02em}
#topnews .news_body{margin-bottom:0}
#topnews .news_body div{font-size:15px;line-height:1.95;color:var(--bf-text);font-family:var(--bf-sans)}
#topnews .news_body img{opacity:.9}

/* ---- pick up ----------------------------------------------------------- */
#pickup .pickup-box{background:#fff;border:1px solid var(--bf-line);border-radius:var(--bf-radius);overflow:hidden;box-shadow:var(--bf-shadow);font-family:var(--bf-sans)}
.pickup_side{padding:30px 44px}
.pickup_flow_text{font-size:14px;letter-spacing:.06em;color:var(--bf-brown)}
.pickup_name{font-family:var(--bf-serif);font-weight:400;font-size:32px;color:var(--bf-green) !important;margin:2px 0 4px}
.pickup_size{font-size:14px;color:var(--bf-muted);font-family:var(--bf-sans)}
.pickup_tag{flex-wrap:wrap;gap:6px}
.pickup_tag li.is_active{width:auto;padding:4px 14px;border-radius:999px;border-color:#d5dbd2;background:#f3f6f1;color:var(--bf-green);font-family:var(--bf-sans);font-size:12px;margin:0}
.pickup_datalist dt,.pickup_datalist dd{padding:16px 12px 10px;font-size:15px;border-bottom:1px solid var(--bf-line);font-family:var(--bf-sans)}
.pickup_datalist dt{color:var(--bf-green);font-weight:600}
.pickup_datalist dd{color:var(--bf-text)}
.top_pickup .profile .name{font-family:var(--bf-sans) !important;font-weight:600}

/* ---- contact & booking ------------------------------------------------- */
.banner_area{margin-top:70px}
.banner_area ul{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.banner_area ul li{margin:0}
.banner_area ul li a{display:block;background:#fff;border:1px solid var(--bf-line);border-radius:18px;padding:12px;box-shadow:0 12px 28px -18px rgba(0,0,0,.35);transition:.25s}
.banner_area ul li a:hover{transform:translateY(-4px);box-shadow:0 18px 34px -18px rgba(0,0,0,.4);border-color:var(--bf-gold-2)}
.banner_area ul li a img{width:52px;height:52px;display:block;opacity:1 !important}
.after-text{margin-top:36px}
.after-text p{background:#fff;border:1px solid var(--bf-line);border-radius:var(--bf-radius);padding:26px 34px;font-family:var(--bf-sans);font-size:15px;line-height:1.9;color:var(--bf-text);box-shadow:var(--bf-shadow)}

/* ---- therapists available today ---------------------------------------- */
#topschedule{padding:80px 0 40px}
.topschedule_bg{padding:56px 0 16px;border-top:0;box-shadow:inset 0 1px 0 rgba(176,129,54,.35),inset 0 -1px 0 rgba(176,129,54,.35)}
.c-panel__wrapper{margin:50px auto 40px}
.c-panel{background:#fff;border:1px solid var(--bf-line);border-radius:10px;padding:12px;box-shadow:0 14px 30px -22px rgba(64,84,66,.55);transition:transform .3s,box-shadow .3s}
.c-panel:hover{transform:translateY(-5px);box-shadow:0 26px 44px -24px rgba(64,84,66,.6)}
.c-panel__image{border-radius:6px;overflow:hidden}
.c-panel__image>a:hover{transform:none}
.c-panel__image>a>img{transition:transform .7s ease}
.c-panel:hover .c-panel__image>a>img{transform:scale(1.05)}
.c-panel__flow ul li{color:var(--bf-brown);font-family:var(--bf-sans);font-size:12px;letter-spacing:.03em}
.c-panel__name{font-family:var(--bf-sans) !important;font-size:15px;font-weight:600;color:var(--bf-ink);margin-top:10px}
.c-panel__size{font-size:11px;color:var(--bf-muted);font-family:var(--bf-sans) !important}
.c-panel__time{border-radius:6px;font-family:var(--bf-sans);font-weight:600;letter-spacing:.04em}
.c-panel__tag{gap:4px 2%}
.c-panel__tag li.is_active{width:49%;border:1px solid #dde3da;border-radius:999px;font-size:10px;color:#5b6359;padding:2px 6px;margin:0;background:#fafbf9}

/* ---- feedback ----------------------------------------------------------- */
#feedback{padding-top:80px}
#feedback .feedbackList li{padding:14px 20px;background:transparent !important}
#feedback .feedbackList__inner{max-width:1000px;background:#fff;border:1px solid var(--bf-line);border-radius:var(--bf-radius);padding:30px 36px;box-shadow:var(--bf-shadow);font-family:var(--bf-sans)}
#feedback .feedbackList li:nth-child(odd) .feedbackList__inner{background:#f7faf6}
.feedbackList__image{width:88px;margin-right:30px}
.feedbackList__image img{border-radius:10px;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--bf-gold-2)}
.feedbackList__detail{width:calc(100% - 118px)}
.feedbackList__head a{font-family:var(--bf-sans);font-size:17px;font-weight:600}
.feedbackList__date{font-size:13px;color:var(--bf-muted)}
.feedbackList__body-title{font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.feedbackList__cmnt,.feedbackList__cmnt2{font-size:15px;line-height:1.85;color:var(--bf-text)}
.feedback_more{max-width:320px;height:54px;margin:34px auto 0}
.feedback_more a{border-radius:999px;background:var(--bf-green);transition:.25s}
.feedback_more a:hover{background:#2f4232}
.feedback_more a span{background:transparent;font-family:var(--bf-sans);letter-spacing:.14em;font-weight:600;line-height:54px}
.feedback_more a span:after{border-color:transparent transparent transparent var(--bf-green)}

/* ---- quick-link tiles (existing tetris images) --------------------------- */
.tetris_menu{margin-top:80px}
.tetris_menu a{display:block;border-radius:8px;overflow:hidden;box-shadow:0 14px 30px -22px rgba(0,0,0,.6);transition:transform .3s,box-shadow .3s}
.tetris_menu a:hover{transform:translateY(-4px);box-shadow:0 26px 40px -24px rgba(0,0,0,.6)}
.tetris_menu a:hover p{opacity:1}
.tetris_menu p{transition:filter .3s}
.tetris_menu a:hover p{filter:brightness(1.06)}

/* ---- page top & footer --------------------------------------------------- */
#pagetop a{border-radius:50%;font-size:22px;box-shadow:0 10px 24px -12px rgba(0,0,0,.6)}
#footer_info,#footer_info .info_title,.f_time,.foot_menu li a,.ban,#copyright{font-family:var(--bf-sans) !important}
#footer_info .f_tel .info_title{font-size:13px;opacity:.85}
.f_time{font-family:var(--bf-serif) !important;font-size:22px}
.foot_menu a{letter-spacing:.14em;font-size:12px;font-weight:600}
.ban{font-size:11px;opacity:.7}
#copyright small{font-size:11px;letter-spacing:.02em}
