*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#faf8f2;color:#232a25;font-family:"Hiragino Sans","Noto Sans",sans-serif;font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}header{padding:22px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8dbd2;background:#faf8f2}header strong{font-size:26px;letter-spacing:-1px}nav{display:flex;gap:25px;align-items:center;font-size:13px}button,.btn{display:inline-block;background:#cf392a;color:white;padding:14px 25px;font-weight:700;border:0;border-radius:2px}.outline{color:#232a25;background:transparent;border:1px solid #232a25}.wrap{max-width:1180px;margin:auto;padding:80px 32px}.hero{display:grid;grid-template-columns:1fr 1.07fr;align-items:center;gap:38px;padding-top:58px;padding-bottom:64px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;color:#ac3527}h1{font-size:42px;line-height:1.65;letter-spacing:-1.8px;margin:18px 0}h2{font-size:30px;line-height:1.6;letter-spacing:-.8px;margin:10px 0 26px}h3{font-size:20px;line-height:1.7}p{margin:14px 0 24px}.hero img{width:100%;height:440px;object-fit:cover}.caption{font-size:12px;color:#61675d;margin-top:10px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.actions .btn{font-size:14px}.stripe{padding:16px;text-align:center;background:#e5eb6c;font-size:13px;letter-spacing:2px}.two{display:grid;grid-template-columns:1fr 1fr;gap:65px}.line{border-top:1px solid #cbd0c4}.three,.four{display:grid;gap:25px;grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.number{font-size:32px;color:#b74030;font-weight:700}.muted{background:#eeeee5}.photo{width:100%;height:220px;object-fit:cover}.row{padding:20px 0;border-bottom:1px solid #cbd0c4;display:flex;justify-content:space-between;gap:20px}.row strong{font-size:19px}.tag{font-size:12px;color:#56614a}.quote{font-size:19px;line-height:2;border-top:3px solid #cf392a;padding-top:24px}.price{font-size:62px;font-weight:700;line-height:1.2}.price small{font-size:18px}.dark{background:#203d38;color:#fff}.dark .eyebrow{color:#dbe88a}.dark .btn{background:#dbe88a;color:#203d38}.dark .outline{background:transparent;color:white;border-color:white}footer{padding:35px 5%;font-size:12px;background:#232a25;color:white;display:flex;justify-content:space-between}.mobile-cta{display:none}.note{font-size:12px;color:#686d60}.os h1{font-size:52px}.os .hero{min-height:540px}.os .statement{border-left:3px solid #dbe88a;padding-left:35px;font-size:25px}.os .eyebrow{color:#42695b}.os .dark .eyebrow{color:#dbe88a}.os .btn{background:#203d38}.os .dark .btn{background:#dbe88a;color:#203d38}.os .service{border-top:1px solid #b3c0b6;padding:16px 0}.review{font-size:11px;text-align:center;padding:5px;background:#ece6d6}.os .review{background:#dfe8e2}.step{font-size:14px;border-top:1px solid #b7c0b4;padding-top:18px}.overview{padding:24px;display:flex;gap:20px}@media(max-width:700px){header{padding:15px 22px}header strong{font-size:22px}nav a:not(.btn){display:none}nav .btn{font-size:12px;padding:9px 13px}.wrap{padding:48px 24px}.hero{display:flex;flex-direction:column;gap:20px;padding-top:30px}h1{font-size:29px;letter-spacing:-1px;line-height:1.7}h2{font-size:25px}.hero img{height:auto;aspect-ratio:4/3}.hero p{font-size:14px}.hero .actions{gap:8px}.actions .btn{padding:13px 15px;font-size:13px}.two,.three,.four{grid-template-columns:1fr;gap:28px}.four{grid-template-columns:1fr 1fr;gap:20px}.four h3{font-size:17px}.four p{font-size:14px}.stripe{font-size:10px;letter-spacing:1px}.photo{height:225px}.row{font-size:13px;gap:10px}.row strong{font-size:16px}.quote{font-size:17px}.price{font-size:50px}.mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;padding:9px 16px;background:#faf8f2;border-top:1px solid #cbd0c4;gap:9px;z-index:5}.mobile-cta a{flex:1;text-align:center;font-size:13px;padding:10px}footer{padding-bottom:90px;display:block}.os h1{font-size:36px}.os .hero{min-height:0}.os .statement{font-size:20px;margin-top:18px}.os .four{grid-template-columns:1fr 1fr}}
/* Revision 02 — photo journal / coral / white. Logo artwork remains original. */
body{background:#fff;color:#29262b}header{background:#fff;padding:12px 5%;min-height:110px;border-color:#e9e4e1}.review,.os .review{background:#f5eeea;color:#62565a}.brand{display:block;flex-shrink:0}.logo-window{display:block;position:relative;width:162px;height:88px;overflow:hidden}.logo-window img{position:absolute;width:282px;height:auto;max-width:none;left:-60px;top:-52px}.os-label{margin-left:24px;margin-right:auto;font-size:12px;color:#60575c}.eyebrow,.os .eyebrow{color:#a34735;letter-spacing:1.2px}.btn,.os .btn{background:#b74b36;color:white;border-radius:0}.outline{background:transparent;color:#29262b;border-color:#29262b}.hero{gap:58px;padding-top:48px;padding-bottom:80px}h1{font-size:40px;line-height:1.62;letter-spacing:-1.2px}h2{font-size:32px}.sports-hero{grid-template-columns:.95fr 1.2fr;align-items:start;min-height:680px}.sports-hero>div:last-child{position:relative;padding-bottom:110px;padding-top:18px}.sports-hero>div:last-child>img{height:390px;object-fit:cover;transform:rotate(1.2deg)}.caption{color:#74656a;font-size:11px}.caption b{color:#a34735;letter-spacing:1.4px}.snapshot{position:absolute;right:0;bottom:0;width:215px;background:white;padding:8px;transform:rotate(-5deg);box-shadow:0 4px 15px #30232718}.hero .snapshot img{height:130px;width:100%;object-fit:cover}.snapshot span{display:block;font-size:11px;padding:3px;color:#51434a}.stripe{background:#efb39c;color:#402a26;letter-spacing:1px;text-align:left;padding:15px max(24px,calc((100vw - 1116px)/2));font-weight:600}.muted{background:#fbf2ec}.line,.row,.step,.os .service{border-color:#ddcfc7}.number{color:#b74b36;font-family:Georgia,serif;font-style:italic}.tag,.note{color:#6d6065}.quote{border-color:#df9378;font-size:21px}.dark{background:#342c3b;color:white}.dark .eyebrow,.os .dark .eyebrow{color:#f0b69e}.dark .btn,.os .dark .btn{background:#efb39c;color:#35252c}.dark .outline{color:white;background:transparent}.dark h2{font-size:38px}footer{background:#29262b}.os .hero{grid-template-columns:1.2fr 1fr;align-items:center;min-height:540px}.os .statement{border-color:#efb39c;font-size:19px}.os-mark{font-size:49px;line-height:1.1;margin-bottom:28px;font-weight:700;letter-spacing:-2px}.os-mark span{color:#efb39c}.os-mark small{display:block;font-size:11px;letter-spacing:1px;line-height:2.5}.os h1{font-size:50px}.mobile-cta{background:white}.three>a{display:block}.three>a:nth-child(2){padding-top:30px}.three>a:nth-child(3){padding-top:60px}.three>a:nth-child(5){padding-top:30px}.three>a:nth-child(6){padding-top:60px}.three .photo{height:230px}.two .quote{font-family:"Hiragino Mincho ProN",serif;font-weight:500}.four{column-gap:32px}.four>div:nth-child(even){margin-top:35px}
@media(max-width:700px){header{min-height:88px;padding:6px 22px}.logo-window{width:130px;height:74px}.logo-window img{width:230px;left:-49px;top:-42px}.os-label{display:none}.hero{gap:15px;padding-top:30px;padding-bottom:40px}.sports-hero{min-height:0}.sports-hero>div:last-child{width:100%;padding-top:0;padding-bottom:90px}.sports-hero>div:last-child>img{height:auto;aspect-ratio:4/3;transform:rotate(1deg)}h1{font-size:28px;line-height:1.55;margin:15px 0}.hero p{margin:10px 0}.hero .actions{margin-top:20px}.snapshot{width:145px;bottom:0}.hero .snapshot img{height:87px}.snapshot span{font-size:10px}.caption{max-width:190px;padding-top:7px}h2{font-size:25px}.dark h2{font-size:28px}.stripe{font-size:10px}.three>a:nth-child(n){padding-top:0}.four>div:nth-child(even){margin-top:0}.os .hero{min-height:0;align-items:stretch}.os h1{font-size:36px}.os .statement{font-size:18px}.os-mark{font-size:38px}.quote{font-size:18px}}
.logo-window{width:162px;height:100px}.logo-window img{width:250px;left:-50px;top:-43px}@media(max-width:700px){.logo-window{width:136px;height:86px}.logo-window img{width:220px;left:-46px;top:-40px}}

/* ThriveSports Auto Calendar (PC grid / SP list) */
.ts-cal { --ts-border: rgba(0,0,0,.10); --ts-muted: rgba(0,0,0,.60); --ts-radius: 14px; --ts-shadow: 0 10px 25px rgba(0,0,0,.06); }
.ts-cal * { box-sizing: border-box; }

.ts-cal__head{ display:flex; align-items: baseline; justify-content: space-between; gap:12px; margin: 0 0 12px; }
.ts-cal__title{ font-size: clamp(18px, 2.2vw, 28px); line-height: 1.2; margin: 0; }
.ts-cal__note{ color: var(--ts-muted); font-size: 14px; }

.ts-cal__legend{ display:flex; flex-wrap:wrap; gap:8px 10px; margin: 10px 0 14px; }
.ts-tag{ display:inline-flex; align-items:center; gap:8px; border:1px solid var(--ts-border); border-radius:999px; padding:6px 10px; font-size:13px; color: rgba(0,0,0,.75); background: rgba(255,255,255,.7); }
.ts-dot{ width:10px; height:10px; border-radius:999px; display:inline-block; }

.ts-cal__grid{ border:1px solid var(--ts-border); border-radius: var(--ts-radius); overflow:hidden; box-shadow: var(--ts-shadow); background:#fff; }
.ts-cal__dow{ display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); border-bottom:1px solid var(--ts-border); background: rgba(0,0,0,.02); }
.ts-cal__dow div{ padding:10px; font-size:13px; color: var(--ts-muted); }

.ts-cal__days{ display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); }
.ts-day{ min-height:110px; padding:10px; border-right:1px solid var(--ts-border); border-bottom:1px solid var(--ts-border); }
.ts-day:nth-child(7n){ border-right:none; }
.ts-day.is-empty{ background: rgba(0,0,0,.015); }
.ts-day__num{ font-weight:700; font-size:14px; margin-bottom:8px; opacity:.9; }

.ts-event{ display:block; text-decoration:none; border:1px solid var(--ts-border); border-radius:10px; padding:8px 9px; margin:6px 0 0; font-size:12.5px; line-height:1.35; color: rgba(0,0,0,.82); background: rgba(255,255,255,.92); }
.ts-event:hover{ transform: translateY(-1px); box-shadow: 0 10px 20px rgba(0,0,0,.06); }
.ts-event__time{ display:block; font-size:12px; color: var(--ts-muted); margin-bottom:2px; }

/* Category colors (ThriveSports) */
.ts-cat-korf{ border-left:5px solid #2e7d32; }   /* コーフ：緑 */
.ts-cat-bb5{ border-left:5px solid #fdd835; }    /* BB5/ウィッフル：黄色 */
.ts-cat-youfo{ border-left:5px solid #e53935; }  /* YOU.FO：赤 */
.ts-cat-molkky{ border-left:5px solid #8d6e63; } /* モルック：茶色 */
.ts-cat-pickle{ border-left:5px solid #ec407a; } /* ピックル：ピンク */
.ts-cat-tchouk{ border-left:5px solid #1e88e5; } /* チュックボール：青 */
.ts-cat-admin{ border-left:5px solid #fb8c00; }  /* 運営：オレンジ */
.ts-cat-other{ border-left:5px solid #546e7a; }  /* 予備 */

/* Mobile list */
.ts-cal__list{ display:none; gap:10px; }
.ts-list-item{ border:1px solid var(--ts-border); border-radius: var(--ts-radius); padding:12px; box-shadow: var(--ts-shadow); background:#fff; }
.ts-list-date{ display:flex; align-items:center; justify-content: space-between; gap:8px; margin-bottom:8px; }
.ts-list-date strong{ font-size:15px; }
.ts-list-date span{ font-size:12.5px; color: var(--ts-muted); }

@media (max-width: 768px){
  .ts-cal__grid{ display:none; }
  .ts-cal__list{ display:grid; }
}

/* Month navigation */
.ts-cal-nav{ display:flex; flex-wrap:wrap; gap:8px; margin: 0 0 16px; }
.ts-cal-nav a{
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--ts-border); border-radius:999px;
  padding:8px 12px; font-size:13px; text-decoration:none;
  color: rgba(0,0,0,.75); background: rgba(255,255,255,.7);
}
.ts-cal-nav a:hover{ box-shadow: var(--ts-shadow); transform: translateY(-1px); }

.ts-cal {
  /* カレンダー用CSS */
}
.ts-cal-nav a.is-active{
  font-weight: 700;
  text-decoration: underline;
}


/* Layout isolation and equal mobile gutters. */
html,body{width:100%;margin:0;padding:0}body{min-width:0}.wrap{width:100%;max-width:1180px;margin-inline:auto}img{max-width:100%}header,nav,main,section,.two>*,.three>*,.four>*,.hero>*{min-width:0}h1,h2,h3{background:none;border:0;padding:0;font-weight:700}a:focus-visible,button:focus-visible{outline:3px solid #a34735;outline-offset:5px}.skip-link{position:absolute;top:-100px;left:15px;z-index:10000;background:white;padding:10px}.skip-link:focus{top:0}.ts-cal{--ts-radius:2px;--ts-shadow:none}.ts-cal__title{font-size:22px}.ts-event{border-radius:2px}.ts-cal-nav a{border-radius:2px;min-width:44px;min-height:44px}#page_top{display:none!important}.os header .btn{color:white}.calendar-trial{display:block;padding:8px;color:#a34735;font-size:13px;font-weight:700}.report-pagination{display:flex;gap:18px;flex-wrap:wrap;margin-top:30px}.report-pagination a{padding:10px}.ts-report-card img{width:100%;height:200px;object-fit:cover}.ts-report-card{border-top:1px solid #ddcfc7;padding-top:18px}.ts-report-card h3{font-size:19px}.os-label{line-height:1.5}footer a{text-decoration:underline}.os footer{margin-bottom:0}.three>a:nth-child(n){min-width:0}.hero .snapshot{right:10px}.ts-cal__grid{overflow:hidden}.ts-event{overflow-wrap:anywhere}
@media(max-width:700px){.wrap{width:100%;padding-inline:24px;margin-inline:auto}.hero{width:100%;align-items:stretch}.hero>div{width:100%;max-width:100%}.actions{justify-content:flex-start}.hero h1{font-size:clamp(24px,7.1vw,29px)}.sports-hero>div:last-child>img{transform:none}.hero .snapshot{right:8px}.mobile-cta{padding-bottom:max(9px,env(safe-area-inset-bottom));width:100%}.mobile-cta a{min-height:44px}.four{grid-template-columns:1fr}.row{flex-wrap:wrap}.os-label{display:none}footer{padding-inline:24px}.os .hero{align-items:stretch}.ts-list-item{width:100%;min-width:0}.ts-cal-nav{gap:6px}.ts-cal__title{font-size:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.report-pagination a,.report-pagination .page-numbers{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}.report-pagination{justify-content:flex-start}.ts-report-card img.emoji{width:1em!important;height:1em!important;display:inline!important}
.sheet-month{margin:20px 0;border-top:1px solid #ddcfc7}.sheet-month summary{padding:18px 0;font-size:21px;font-weight:700;cursor:pointer}.sheet-day{border-top:1px solid #ddcfc7;padding:15px 0}.sheet-day h3{font-size:18px;margin:0 0 12px}.sheet-event{display:grid;grid-template-columns:140px 1fr 150px 120px;gap:15px;padding:12px 0;align-items:center}.sheet-event a{font-size:13px;color:#a34735;min-height:44px;display:flex;align-items:center}.sheet-event span{font-size:14px}@media(max-width:700px){.sheet-event{grid-template-columns:1fr;gap:3px;border-bottom:1px solid #eee4dc}.sheet-event strong{font-size:17px}.sheet-month summary{font-size:19px}}
/* Keep the server-rendered schedule visible until the interactive one succeeds. */
#ts-calendar-app{display:none}#sheet-fallback[hidden]{display:none}
