/* Kobayashi Soroban: shared island identity for every public page. */
:root{--island-sea:#26a8c0;--island-deep:#287d98;--island-sky:#e9f9ff;--island-cloud:#fff;--island-sand:#fff9e9;--island-mint:#e5f7e9;--island-ink:#285d70;--island-border:#ccebf2;--island-shadow:0 12px 34px rgba(36,139,163,.10)}
html{scroll-behavior:smooth}body{background:var(--island-cloud)!important;color:var(--island-ink)!important;font-family:'Noto Sans JP',sans-serif}a{transition:color .2s,background .2s,transform .2s}a:hover{color:#168ba4}
/* Shared sky and sea header, with the same identity as the landing page. */
.site-header,.nav{background:#fff!important;border-bottom:1px solid var(--island-border)!important;box-shadow:0 4px 22px #39abc013!important}.site-header .brand-lockup,.nav .logo,.brand-name{color:var(--island-deep)!important}.brand-mark,.logo span{color:#60b9c9!important}.site-header .header-nav a:not(.header-cta){color:var(--island-ink)!important}.site-header .header-cta,.navcta,.btn,.contact-submit,.search-page-form button{background:var(--island-sea)!important;color:#fff!important;border:0!important;border-radius:999px!important;box-shadow:0 5px 0 #1b8ca322!important}.site-header .header-cta:hover,.btn:hover,.search-page-form button:hover{background:#168da7!important;color:#fff!important}
/* Page banners: sky and cloud, without obscuring any content. */
.search-page,.archive-page,.contact-page-main,main.section,.article{background:linear-gradient(180deg,var(--island-sky) 0,#fff 340px)!important}.search-page,.contact-page-main{min-height:65vh}.search-shell,.article,.contact-page-main .shell{position:relative}.search-shell:before,.article:before{content:'☁';position:absolute;right:0;top:4px;color:#fff;font-size:clamp(65px,13vw,145px);line-height:1;pointer-events:none;opacity:.85}.search-shell>*,.article>*{position:relative}.section-kicker,.kicker{color:var(--island-deep)!important;letter-spacing:.13em}.search-title,.section-head h1,.article h1{color:var(--island-deep)!important;line-height:1.4!important}.search-summary,.search-result-snippet,.section-intro{color:#567c8b!important}
/* Search: cloud-white cards over pale sky; separate blog from guidance. */
.search-page{padding-top:clamp(35px,6vw,75px)!important}.search-page-form{background:#fff!important;border:2px solid var(--island-border)!important;border-radius:999px!important;box-shadow:var(--island-shadow)!important;padding:5px!important;display:flex!important;gap:8px!important}.search-page-form input{min-width:0!important;flex:1!important;background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;color:var(--island-ink)!important}.search-page-form button{padding:12px 25px!important;white-space:nowrap!important}.search-result{background:#fff!important;border:1px solid var(--island-border)!important;border-radius:22px!important;box-shadow:var(--island-shadow)!important;padding:clamp(19px,3vw,30px)!important;margin:18px 0!important}.search-result-type{display:inline-block!important;background:var(--island-mint)!important;color:#31876d!important;border-radius:999px!important;padding:4px 13px!important;font-weight:800!important}.search-result-title a{color:var(--island-deep)!important}.search-result-url{color:#66a9b7!important;overflow-wrap:anywhere}.search-highlight,mark{background:#fff1a7!important;color:#285d70!important;border-radius:5px!important;padding:0 3px}.search-empty{background:#fff!important;border:1px solid var(--island-border)!important;border-radius:18px!important;padding:24px!important}
/* News, blog, guidance, classrooms and forms all share the island cards. */
.section-soft,.tint{background:var(--island-sky)!important}.news-card,.rebuilt-card,.school-card,.voice-card,.contact-card,.card,.school,.post,.article-body{background:#fff!important;color:var(--island-ink)!important;border:1px solid var(--island-border)!important;border-radius:20px!important;box-shadow:var(--island-shadow)!important;overflow:hidden}.article-body{padding:clamp(20px,4vw,42px)!important;overflow-wrap:anywhere}.news-card h3,.news-card h3 a,.entry-meta-link,.archive-pill,.pager-link{color:var(--island-deep)!important}.archive-pill,.pager-link{border-radius:999px!important}.archive-pill.is-active,.pager-link.is-active{background:var(--island-sea)!important;color:#fff!important}.entry-thumb img{border-radius:14px}.blog-trial-cta,.cta{background:linear-gradient(125deg,#29abc1,#76d0dc)!important;color:#fff!important;border-radius:24px!important}.site-footer,footer{background:#267e98!important;color:#fff!important}.site-footer a,footer a{color:#fff!important}
/* Dedicated guidance pages and their existing header. */
.article{margin-top:0!important;margin-bottom:0!important;padding:clamp(38px,6vw,80px) max(20px,calc((100vw - 860px)/2)) 100px!important;max-width:none!important}.article .article-body{background:#fff!important}.article .btn{margin-top:25px}.nav nav a{color:var(--island-ink)}.nav nav a.navcta{color:#fff!important}
@media(max-width:650px){.search-page-form{border-radius:23px!important}.search-page-form button{padding:10px 16px!important}.search-result{border-radius:17px!important}.site-header .header-inner{gap:10px}.article{padding:35px 17px 75px!important}.search-shell:before,.article:before{font-size:65px;top:0}}

/* 小林そろばん塾：教室カード・埋め込みマップ */
.island-school-cards .island-school{overflow:hidden;min-width:0}.island-school .school-address{min-height:2.8em;overflow-wrap:anywhere}.island-map{display:block;width:100%;height:290px;border:0;border-radius:20px;background:#e9f8fc;margin:18px 0}.school-links{display:flex;flex-wrap:wrap;gap:12px 22px}.school-links a{font-weight:700;color:#168eaa}.school-links a:last-child{background:#26a7be;color:white;padding:12px 18px;border-radius:100px;text-decoration:none}@media(max-width:680px){.island-map{height:260px}.island-school-cards{grid-template-columns:1fr}}

/* Island news and blog archive, 2026-09-28 */
.island-news{padding:62px 0 68px;background:linear-gradient(180deg,#fff 0%,#edfbff 100%);overflow:hidden}.island-news-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.island-news-head h2{font-size:clamp(26px,3.5vw,42px);color:#237f9b;margin:6px 0}.island-news-head p{margin:0}.island-news-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 22px;scrollbar-width:thin;scrollbar-color:#85d5e4 transparent}.island-news-item{scroll-snap-align:start;flex:0 0 min(310px,82vw);display:block;text-decoration:none;color:#24556b;background:#fff;border:1px solid #cbeaf0;border-radius:23px;overflow:hidden;box-shadow:0 10px 25px rgba(37,130,151,.09)}.island-news-thumb{height:165px;background:linear-gradient(135deg,#c6f0f7,#fff1cf);overflow:hidden}.island-news-thumb img{width:100%;height:100%;object-fit:cover}.island-news-copy{padding:18px}.island-news-copy time{font-size:12px;color:#5794a4}.island-news-copy h3{font-size:18px;line-height:1.55;margin:8px 0 15px}.island-news-copy span{color:#219cb6;font-weight:700}.island-news-controls{display:flex;justify-content:end;gap:10px}.island-news-controls button{border:1px solid #a6dfe9;background:#fff;border-radius:50%;width:42px;height:42px;color:#247f98;cursor:pointer}.island-blog-archives{margin:70px 0 10px;padding:28px;border-radius:24px;background:#f1fbfd;border:1px solid #c8eaf0}.island-blog-archives h2{font-size:25px;color:#257d98;margin:0 0 8px}.island-blog-archives summary{cursor:pointer;font-weight:700;color:#247f98;padding:13px 0}.island-blog-archives .archive-pills{margin-top:16px;display:flex;flex-wrap:wrap;gap:9px}.archive-page .entry-list-grid{margin-top:24px}@media(max-width:680px){.island-news{padding:38px 0}.island-news-head{align-items:start;flex-direction:column}.island-news-item{flex-basis:78vw}.island-blog-archives{padding:20px}}

/* Blog and article: island editorial layout. */
.archive-page .entry-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.archive-page .rebuilt-card{padding:0!important;display:flex;flex-direction:column}
.archive-page .rebuilt-card .entry-thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:#e9f8fc}
.archive-page .rebuilt-card .entry-thumb img{width:100%;height:100%;object-fit:cover;border-radius:0}
.archive-page .rebuilt-card .news-date,.archive-page .rebuilt-card h3,.archive-page .rebuilt-card>p:not(.news-date),.archive-page .rebuilt-card .entry-meta-link{margin-left:20px;margin-right:20px}
.archive-page .rebuilt-card .news-date{margin-top:18px;font-size:13px}
.archive-page .rebuilt-card h3{font-size:clamp(18px,2vw,23px);line-height:1.55}
.archive-page .rebuilt-card h3 a{text-decoration:none}
.archive-page .rebuilt-card>p:not(.news-date){color:#587e8d;line-height:1.8;overflow-wrap:anywhere}
.archive-page .rebuilt-card .entry-meta-link{margin-top:auto;margin-bottom:22px;font-weight:800}
.island-post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:36px 0}
.island-post-nav a,.island-related-card{display:flex;flex-direction:column;gap:8px;padding:19px;background:#fff;border:1px solid #ccebf2;border-radius:18px;text-decoration:none;color:#287d98;overflow-wrap:anywhere}
.island-post-nav small,.island-related-card span{color:#6895a3}
.island-related{margin:60px 0 25px}.island-related h2{color:#287d98}
.island-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.island-related-card{padding:0 0 17px;overflow:hidden}.island-related-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.island-related-card span,.island-related-card strong{margin:0 15px}
.island-post-back{margin:35px 0 60px;font-weight:800}
@media(max-width:900px){.archive-page .entry-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.archive-page .entry-list-grid,.island-related-grid{grid-template-columns:1fr}.island-post-nav{grid-template-columns:1fr}.archive-page .rebuilt-card .entry-thumb{aspect-ratio:16/9}}

/* KOBA-SORO official transparent logos: keep aspect ratio and no overlapping copy. */
.searchband .koba-search-logo{display:flex;align-items:center;justify-content:flex-start;flex:0 1 330px;min-width:0;margin:0;padding:0}
.searchband .koba-search-logo img{display:block;width:min(100%,330px);height:auto;max-height:120px;object-fit:contain;object-position:left center}
.searchband .searchinput{flex:1 1 450px;min-width:0}
.island-news-head .koba-news-logo{flex:0 1 440px;min-width:0}
.island-news-head .koba-news-logo img{display:block;width:min(100%,440px);height:auto;max-height:175px;object-fit:contain;object-position:left center}
.archive-page .section-head .koba-blog-logo{display:block;width:min(100%,490px);height:auto;max-height:190px;object-fit:contain;object-position:left center}
@media(max-width:900px){.searchband .koba-search-logo{flex-basis:auto;width:100%}.searchband .koba-search-logo img{width:min(76vw,300px)}.searchband .searchinput{flex-basis:auto;width:100%}}
@media(max-width:680px){.island-news-head .koba-news-logo{flex-basis:auto;width:100%}.island-news-head .koba-news-logo img{width:min(82vw,340px)}.archive-page .section-head .koba-blog-logo{width:min(90vw,370px)}.searchband .searchinput input{min-width:0;font-size:14px}}

/* Resort lobby and compact mobile search: overrides older responsive rules */
.searchband form{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:clamp(10px,2vw,22px)!important}
.searchband .koba-search-logo{flex:0 0 clamp(110px,14vw,175px)!important;width:clamp(110px,14vw,175px)!important;min-width:0!important;margin:0!important}
.searchband .koba-search-logo img{display:block!important;width:100%!important;max-width:175px!important;max-height:65px!important;object-fit:contain!important}
.searchband .searchinput{flex:1 1 0!important;min-width:0!important;width:auto!important}
.island-news-title{color:#267e98;font-size:clamp(24px,3vw,35px);margin:0;line-height:1.25}.island-news-title span{display:block;font-size:clamp(14px,1.6vw,19px)}
.resort-lobby{padding:clamp(60px,8vw,115px) 0;background:linear-gradient(180deg,#effbff 0%,#dff8fa 44%,#fff8e9 100%);position:relative;overflow:hidden}
.resort-lobby:before{content:"";position:absolute;left:-10%;right:-10%;top:0;height:55px;background:radial-gradient(ellipse 110px 33px at 50% 0,#fff 98%,transparent 100%) repeat-x;background-size:210px 55px;opacity:.9}
.resort-lobby-head{text-align:center;max-width:760px;margin:0 auto 36px}.resort-lobby-head h2{font-size:clamp(30px,4vw,53px);color:#207e9a;margin:12px 0 15px;line-height:1.35}.resort-lobby-head>p:last-child{color:#4d7e8c;line-height:1.9}
.resort-lobby-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,38px)}
.resort-room{background:white;border:1px solid #bde7ed;border-radius:28px;overflow:hidden;box-shadow:0 18px 38px rgba(26,116,145,.10);min-width:0}
.resort-room-photo{display:block;aspect-ratio:16/9;overflow:hidden;background:#bceef8}.resort-room-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.resort-room-photo:hover img{transform:scale(1.03)}
.resort-room-placeholder{height:100%;position:relative;overflow:hidden;background:linear-gradient(#87d6fa 0 58%,#4ec6d8 58% 76%,#f9eac2 76%)}.resort-sun{position:absolute;right:17%;top:12%;width:55px;aspect-ratio:1;border-radius:50%;background:#ffe28a;box-shadow:0 0 0 12px #fff6c599}.resort-island{position:absolute;left:43%;top:28%;font-size:clamp(65px,8vw,125px);transform:rotate(-9deg)}.resort-sea{position:absolute;bottom:19%;width:100%;height:12px;background:repeating-linear-gradient(90deg,transparent 0 26px,#ffffffa3 27px 56px,transparent 57px 92px);border-radius:100%}
.resort-room-info{padding:clamp(19px,3vw,34px)}.resort-room-number{font-size:12px;font-weight:800;letter-spacing:.18em;color:#2198ac}.resort-room-info h3{font-size:clamp(25px,3vw,36px);margin:12px 0}.resort-room-info h3 a{text-decoration:none;color:#227f99}.resort-room-info p{color:#60818b;overflow-wrap:anywhere}.resort-room-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.resort-room-actions a{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:12px 18px;text-decoration:none;font-weight:800}.resort-room-detail{background:#239fb5;color:#fff}.resort-room-trial{background:#eaf8fb;color:#21849d}
.resort-detail-photo,.resort-detail-placeholder{width:100%;min-height:260px;max-height:440px;object-fit:cover;border-radius:24px}.resort-detail-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(#a1e4fa,#52cbd5 70%,#ffe9b6);color:#18758c}.resort-detail-placeholder span{font-size:110px}
@media(max-width:700px){.searchband{padding:12px 10px!important}.searchband form{gap:7px!important}.searchband .koba-search-logo{flex:0 0 73px!important;width:73px!important}.searchband .koba-search-logo img{width:73px!important;max-height:43px!important}.searchband .searchinput{min-width:0!important;padding:3px!important}.searchband .searchinput input{min-width:0!important;width:100%!important;font-size:12px!important;padding:10px 5px!important}.searchband .searchinput button{flex:0 0 auto!important;white-space:nowrap!important;font-size:12px!important;padding:0 10px!important}.resort-lobby-grid{grid-template-columns:1fr}.resort-lobby-head>p:last-child br{display:none}}

/* PREMIUM COASTAL EDITORIAL — imagery is provisional and can be replaced here.
   Set --premium-* URLs to uploaded photos when available. */
:root{
 --premium-welcome:url('https://images.unsplash.com/photo-1514282401047-d79a71a590e8?auto=format&fit=crop&w=1600&q=85');
 --premium-philosophy:url('https://images.unsplash.com/photo-1497436072909-60f362e1d4b1?auto=format&fit=crop&w=1400&q=85');
 --premium-curriculum:url('https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=1400&q=85');
 --premium-classroom:url('https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1200&q=85');
}
body{background:#fff;color:#254e5c}
.lead.island-section{padding:clamp(75px,9vw,145px) 0;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(35px,6vw,95px)}
.lead .island-copy{max-width:570px}.lead h1{font-size:clamp(38px,4.8vw,68px);line-height:1.37;letter-spacing:.035em;margin:25px 0 30px;color:#23677d}
.lead .island-copy>p:not(.kicker){font-size:clamp(15px,1.4vw,18px);line-height:2.15;color:#557b87}
.lead .kicker,.section-head .kicker,.resort-lobby .kicker{font-size:11px;letter-spacing:.24em;color:#168da6}
.premium-hero-photo{position:relative;min-height:clamp(390px,42vw,610px);background:linear-gradient(160deg,#b8e5e5,#edf8f1 48%,#71b8c2),var(--premium-welcome);background-image:var(--premium-welcome);background-position:center;background-size:cover;border-radius:3px 90px 3px 3px;box-shadow:22px 25px 0 #e5f4f4}
.premium-hero-photo:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0c3f55a8);border-radius:inherit;pointer-events:none}
.premium-photo-caption{position:absolute;z-index:1;bottom:28px;left:30px;color:white;font:700 12px 'DM Sans',sans-serif;letter-spacing:.2em}
.premium-photo-caption i{display:block;font-style:normal;font-weight:400;margin-top:7px;letter-spacing:.1em}
#philosophy,#program .wrap{padding-top:clamp(65px,8vw,120px);padding-bottom:clamp(65px,8vw,120px)}
#philosophy .section-head,#program .section-head{margin-bottom:35px}
#philosophy .section-head h2,#program .section-head h2{font-size:clamp(31px,3.8vw,53px);letter-spacing:.03em}
.section-visual{border-radius:3px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:420px;background:#eef7f5;box-shadow:none;margin-bottom:35px}
.section-visual .visual-copy{padding:clamp(30px,5vw,75px);align-self:center}
.section-visual .visual-copy strong{font-size:clamp(25px,3vw,41px);letter-spacing:.02em;line-height:1.5;color:#286d7f}
.section-visual .visual-copy p{font-size:15px;line-height:2}
.premium-philosophy-photo,.premium-curriculum-photo{min-height:420px;background-size:cover;background-position:center;background-color:#c5dfdb}
.premium-philosophy-photo{background-image:var(--premium-philosophy)}
.premium-curriculum-photo{background-image:var(--premium-curriculum)}
.curriculum-visual{background:#f4f6f1}
#philosophy .cards.three,#program .cards.three{gap:0;border-top:1px solid #cde3e6;border-bottom:1px solid #cde3e6}
#philosophy .card,#program .card{border:0;border-right:1px solid #cde3e6;border-radius:0;box-shadow:none;padding:32px 28px 30px;background:transparent}
#philosophy .card:last-child,#program .card:last-child{border-right:0}
#philosophy .card h3,#program .card h3{margin:16px 0;font-size:19px}
#philosophy .card p,#program .card p{font-size:14px;line-height:1.9}
.resort-lobby{padding:clamp(75px,9vw,135px) 0;background:linear-gradient(180deg,#e8f4f4 0%,#f8fcfa 54%,#fff 100%)}
.resort-lobby-head{max-width:900px;margin:0 0 48px}.resort-lobby-head h2{font-size:clamp(31px,4vw,54px);color:#246c7d;line-height:1.5;letter-spacing:.025em}
.resort-lobby-head>p:last-child{font-size:15px;line-height:2;color:#547d87}
.resort-lobby-grid{gap:32px}
.resort-room{border:0!important;border-radius:3px!important;box-shadow:0 16px 40px #285d6910!important;background:#fff!important;overflow:hidden}
.resort-room-photo{display:block;min-height:300px;aspect-ratio:16/10;overflow:hidden;background:#e0eeed}
.resort-room-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.resort-room-photo:hover img{transform:scale(1.035)}
.premium-room-placeholder{height:100%;min-height:300px;background:linear-gradient(135deg,#bedbd9,#e8f1e8),var(--premium-classroom);background-image:var(--premium-classroom);background-size:cover;background-position:center}
.resort-room-info{padding:clamp(24px,3vw,42px)}
.resort-room-info h3{font-size:clamp(23px,2.5vw,32px);margin:15px 0}.resort-room-info>p{font-size:14px;line-height:1.9}
.resort-room-number{letter-spacing:.2em;font-size:11px}
#journal{background:#f2f9f8}
#journal .post{border-radius:3px;box-shadow:none;border:1px solid #dcebec}
#instagram .insta{border:1px solid #e5ebed;border-radius:3px;background:#f6f8f7}
.cta{border-radius:0;background:linear-gradient(115deg,#146c81,#3faeb6)}
@media(max-width:760px){
 .lead.island-section{grid-template-columns:1fr;gap:45px;padding:65px 0 90px}
 .premium-hero-photo{min-height:360px;border-radius:2px 65px 2px 2px;box-shadow:12px 15px 0 #e5f4f4}
 .section-visual{grid-template-columns:1fr;min-height:0}
 .premium-philosophy-photo,.premium-curriculum-photo{min-height:290px;order:-1}
 .section-visual .visual-copy{padding:30px}
 #philosophy .cards.three,#program .cards.three{display:block}
 #philosophy .card,#program .card{border-right:0;border-bottom:1px solid #cde3e6;padding:24px 8px}
 #philosophy .card:last-child,#program .card:last-child{border-bottom:0}
 .resort-lobby{padding:65px 0}
 .resort-room-photo,.premium-room-placeholder{min-height:230px}
}

/* COASTAL V4 — overrides after the legacy theme */
.lead.island-section{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:center!important;gap:clamp(55px,6vw,100px)!important;padding:clamp(85px,8vw,125px) 0!important}
.lead .island-copy{min-width:0;max-width:570px}.lead .actions{margin-top:42px!important;margin-bottom:0!important;gap:15px!important}.lead .actions .btn{margin:0!important}
.premium-hero-photo{width:100%;min-width:0;min-height:clamp(410px,38vw,570px);align-self:stretch;box-shadow:16px 18px 0 #e5f4f4}
#philosophy,#program{scroll-margin-top:110px}#philosophy .section-visual,#program .section-visual{display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;gap:0!important;border:0!important;box-shadow:none!important;overflow:hidden!important}
#philosophy .premium-philosophy-photo,#program .premium-curriculum-photo{display:block!important;min-height:410px!important;background-size:cover!important;background-position:center!important}
#philosophy .cards.three,#program .cards.three{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;border:0!important;margin-top:34px!important}
#philosophy .card,#program .card{border:1px solid #d7e9e9!important;border-radius:4px!important;padding:32px!important;background:#fff!important;box-shadow:none!important;min-width:0!important}
#philosophy .card:last-child,#program .card:last-child{border:1px solid #d7e9e9!important}
#program{padding-top:0!important}.resort-lobby{padding:clamp(80px,8vw,120px) 0!important;background:linear-gradient(180deg,#e9f6f6,#fff 65%)!important;overflow:visible!important;scroll-margin-top:95px}.resort-lobby:before{display:none!important;content:none!important}.resort-lobby-head{text-align:left!important;max-width:850px!important;margin:0 0 35px!important}.resort-lobby-head h2{margin:15px 0!important}
.school-switch{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:26px}.school-tab{appearance:none;cursor:pointer;border:1px solid #b9d9df;border-radius:4px;padding:15px 26px;background:#fff;color:#276c7d;font:700 16px 'Noto Sans JP',sans-serif;transition:background .2s}.school-tab.is-active{background:#218da4;color:#fff;border-color:#218da4}.school-tab:focus-visible{outline:3px solid #ffcc69;outline-offset:3px}
.school-panel[hidden]{display:none!important}.school-panel{background:#fff;border:1px solid #d9e8e8;box-shadow:0 22px 55px #285d690c;padding:clamp(18px,3vw,38px);border-radius:5px}.school-panel-top{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(25px,4vw,60px);align-items:center}.school-panel-photo{min-height:350px;position:relative;overflow:hidden;background:#e4f1ef}.school-panel-photo img,.school-panel-photo .premium-room-placeholder{width:100%;height:100%;min-height:350px;object-fit:cover;display:block}.photo-note{position:absolute;bottom:15px;left:20px;background:#fffdf0e8;padding:6px 10px;font:700 10px 'DM Sans',sans-serif;letter-spacing:.14em;color:#24677c}.school-panel-info h3{font-size:clamp(28px,3.2vw,43px);color:#24677c;margin:12px 0 24px}.school-panel-info p{line-height:1.95;color:#567783}.school-address{font-weight:700;color:#286d7d!important}.school-panel-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:34px}.school-detail-link{color:#207f98;font-size:13px;font-weight:700;border-bottom:1px solid #65beca;padding-bottom:5px}.school-map{margin-top:35px;border-top:1px solid #d8e8e9;padding-top:25px}.school-map-title{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:15px}.school-map-title strong{color:#286d7c}.school-map-title a{font-weight:700;color:#168da7;font-size:13px}.school-map iframe{display:block;width:100%;height:370px;border:0;background:#edf6f6}.school-map-fallback{font-size:12px;color:#65838a;margin:10px 0 0}
#journal{display:none!important}.cta{width:min(1250px,calc(100% - 64px))!important;margin:clamp(65px,7vw,110px) auto!important;padding:clamp(55px,6vw,90px) clamp(30px,6vw,90px)!important;border-radius:26px!important;overflow:hidden!important}.cta .wrap{width:100%!important;max-width:none!important}.cta .cta-cloud{display:none!important}.cta .btn{margin:0!important}
@media(max-width:900px){.lead.island-section{grid-template-columns:1fr!important;gap:48px!important}.premium-hero-photo{min-height:440px}.school-panel-top{grid-template-columns:1fr}.school-panel-photo,.school-panel-photo img,.school-panel-photo .premium-room-placeholder{min-height:300px}}
@media(max-width:700px){.lead.island-section{padding:60px 0 80px!important;gap:35px!important}.lead .actions{margin:32px 0 0!important;gap:12px!important}.lead .actions .btn{padding:13px 17px!important}.premium-hero-photo{min-height:300px;box-shadow:9px 11px 0 #e5f4f4}#philosophy,#program .wrap{padding-top:65px!important;padding-bottom:65px!important}#philosophy .section-visual,#program .section-visual{grid-template-columns:1fr!important;margin-bottom:25px!important}#philosophy .premium-philosophy-photo,#program .premium-curriculum-photo{min-height:270px!important;order:-1}#philosophy .cards.three,#program .cards.three{grid-template-columns:1fr!important;gap:17px!important;margin-top:26px!important}#philosophy .card,#program .card{padding:25px!important}.resort-lobby{padding:70px 0!important}.school-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.school-tab{padding:12px 6px;font-size:13px}.school-panel{padding:15px}.school-panel-photo,.school-panel-photo img,.school-panel-photo .premium-room-placeholder{min-height:220px}.school-panel-info{padding:12px 5px 0}.school-panel-actions .btn{width:100%}.school-map iframe{height:300px}.cta{width:calc(100% - 34px)!important;margin:55px auto!important;padding:45px 24px!important;border-radius:20px!important}.cta h2{font-size:clamp(26px,7vw,36px)}}

/* Coastal V5: local editable photo, reliable maps, readable beach CTA, search proportions */
#philosophy .premium-philosophy-photo{background-image:url('img/philosophy-default.webp')!important;background-size:cover!important;background-position:center!important}
#philosophy .premium-philosophy-photo[style]{background-image:var(--philosophy-image, url('img/philosophy-default.webp'))!important}
.school-map-open{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#eaf6f7;border:1px solid #d0e9ec;border-radius:14px;padding:25px;text-align:center}
.school-map-open>span{font-size:35px;color:#288da4}.school-map-open p{margin:0;color:#386a7a}.school-map-open .btn{display:inline-flex;justify-content:center;align-items:center}
.cta{background-image:linear-gradient(90deg,rgba(9,64,78,.83),rgba(9,69,79,.58)),var(--island-cta-image)!important;background-size:cover!important;background-position:center!important;background-color:#176f80!important;color:white!important}
.cta .kicker,.cta h2,.cta p{color:white!important;text-shadow:0 2px 8px rgba(0,36,48,.25)}
.searchband .koba-search-logo{flex:0 0 clamp(145px,17vw,230px)!important;width:clamp(145px,17vw,230px)!important}
.searchband .koba-search-logo img{max-width:230px!important;max-height:100px!important}
@media(max-width:700px){.searchband form{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important}.searchband .koba-search-logo{flex:0 0 clamp(92px,25vw,135px)!important;width:clamp(92px,25vw,135px)!important}.searchband .koba-search-logo img{width:100%!important;max-height:76px!important}.searchband .searchinput{flex:1 1 0!important;min-width:0!important;width:auto!important}.searchband .searchinput input{font-size:clamp(10px,2.5vw,13px)!important;padding:8px 3px!important}.searchband .searchinput button{padding:0 8px!important;font-size:12px!important}.school-map-open .btn{width:100%;font-size:13px}}

/* Mobile-safe map image and softer resort panels */
.school-map-image{display:block;position:relative;overflow:hidden;border-radius:22px;background:#eaf4f5;box-shadow:0 12px 30px rgba(24,93,113,.10);text-decoration:none}.school-map-image img{display:block;width:100%;height:clamp(250px,35vw,420px);object-fit:cover}.school-map-image span{position:absolute;right:15px;bottom:15px;border-radius:99px;background:rgba(255,255,255,.96);color:#176f84;font-weight:700;font-size:13px;padding:12px 17px;box-shadow:0 5px 18px #1234}.school-panel{border-radius:24px;border-color:#e1eeee}.school-panel-photo{border-radius:18px}.school-map{border-top-color:#e5eff0}@media(max-width:700px){.school-map-image img{height:290px}.school-map-image span{font-size:12px;padding:10px 13px}.school-panel{border-radius:20px}}

/* 2026-09-28: consistent search styling across mobile browsers */
.searchband{background:#eafaff!important;border-bottom:1px solid #c9edf3!important;padding:19px clamp(12px,3vw,30px)!important;overflow:hidden!important}
.searchband form{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;width:min(1160px,100%)!important;max-width:100%!important;min-width:0!important;gap:clamp(9px,2vw,24px)!important}
.searchband .koba-search-logo{flex:0 0 clamp(145px,19vw,240px)!important;width:clamp(145px,19vw,240px)!important;min-width:0!important}
.searchband .koba-search-logo img{width:100%!important;max-width:240px!important;max-height:100px!important;height:auto!important;object-fit:contain!important}
.searchband .searchinput{display:flex!important;flex:1 1 0!important;width:auto!important;min-width:0!important;max-width:100%!important;align-items:center!important;background:#fff!important;border:2px solid #bde8f1!important;border-radius:999px!important;padding:5px!important;overflow:hidden!important;box-shadow:0 8px 25px #168da711!important}
.searchband .searchinput input{display:block!important;flex:1 1 0!important;width:0!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;background:#fff!important;border:0!important;border-radius:999px!important;font-size:clamp(12px,1.3vw,16px)!important;padding:10px 14px!important;line-height:1.5!important;box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important}
.searchband .searchinput button{display:block!important;flex:0 0 auto!important;white-space:nowrap!important;background:#279fb6!important;color:#fff!important;border:0!important;border-radius:999px!important;min-height:45px!important;padding:0 20px!important;font-size:14px!important;box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important}
@media(max-width:700px){.searchband{padding:12px 9px!important}.searchband form{gap:7px!important}.searchband .koba-search-logo{flex:0 0 clamp(92px,26vw,135px)!important;width:clamp(92px,26vw,135px)!important}.searchband .koba-search-logo img{max-height:70px!important}.searchband .searchinput{padding:3px!important;border-radius:999px!important}.searchband .searchinput input{font-size:clamp(10px,2.8vw,13px)!important;padding:9px 5px!important;text-overflow:ellipsis!important}.searchband .searchinput button{min-height:39px!important;padding:0 10px!important;font-size:12px!important;border-radius:999px!important}}
@media(max-width:370px){.searchband .koba-search-logo{flex-basis:86px!important;width:86px!important}.searchband .searchinput input{font-size:10px!important}.searchband .searchinput button{padding:0 7px!important;font-size:11px!important}}
/* Interactive map for normal browsers; compact fallback for LINE in-app browser */
.school-map,.school-map *{box-sizing:border-box;min-width:0}.school-live-map{display:block;width:100%;max-width:100%;height:clamp(280px,36vw,390px);overflow:hidden;border-radius:20px;background:#eaf5f7}.school-live-map iframe{display:block;width:100%!important;max-width:100%!important;height:100%!important;border:0!important}.school-map-alternative{display:none!important}.is-line-browser .school-live-map{display:none!important}.is-line-browser .school-map-alternative{display:block!important}.school-map-image{max-width:100%!important;width:100%!important;overflow:hidden!important;border-radius:20px!important}.school-map-image img{width:100%!important;max-width:100%!important;height:clamp(230px,32vw,340px)!important;object-fit:cover!important;object-position:center center!important}.school-map-image span{max-width:calc(100% - 24px);right:12px!important;bottom:12px!important;font-size:12px!important}.school-map-fallback{overflow-wrap:anywhere}
@media(max-width:700px){.school-live-map{height:280px}.school-map-image img{height:250px!important}.school-map{width:100%;max-width:100%;overflow:hidden}.school-map-title{align-items:flex-start}.school-map-title a{font-size:12px}}

/* 2026-09-28: LINE map fallback and Instagram responsive image constraints */
.school-map-alternative.koba-map-show{display:block!important}
.koba-map-address{margin:10px 0 0!important;font-size:13px!important;font-weight:700;color:#286d7c;overflow-wrap:anywhere}
#instagram,#instagram *{box-sizing:border-box;min-width:0}
#instagram .ig-mark{display:inline-block!important;width:21px!important;height:21px!important;max-width:21px!important;max-height:21px!important;object-fit:contain!important;vertical-align:middle!important;flex:none!important}
#instagram .ig-symbol{display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;min-width:0}
#instagram .ig-symbol img{display:block!important;width:57px!important;height:57px!important;max-width:57px!important;max-height:57px!important;object-fit:contain!important;flex:none!important}
#instagram .insta{width:100%;max-width:100%;overflow:hidden;grid-template-columns:minmax(0,1fr)}
#instagram .section-head{min-width:0}
@media(max-width:700px){#instagram .section-head{display:flex;flex-direction:column;align-items:flex-start}#instagram .insta{padding:25px 16px}#instagram .insta-placeholder{max-width:100%;overflow-wrap:anywhere}}

/* Soroban Island: lightly pencilled, ruler-drawn borders. Keep form controls accessible. */
:root{--island-pencil:#a9c6cd;--island-pencil-soft:rgba(88,137,150,.13)}
#philosophy .card,#program .card,.school-panel,.island-news-item,.island-blog-archives,#journal .post,#instagram .insta,.school-map-image,.resort-room{
 border:1px solid var(--island-pencil)!important;
 border-radius:11px 13px 10px 12px!important;
 box-shadow:1px 2px 0 var(--island-pencil-soft),inset 0 0 0 1px rgba(255,255,255,.8)!important;
}
#philosophy .card:nth-child(2n),#program .card:nth-child(2n),.island-news-item:nth-child(2n){border-radius:13px 10px 12px 9px!important}
.searchband .searchinput{border:1px solid #a8cbd2!important;box-shadow:1px 2px 0 rgba(81,139,154,.12)!important}
.searchband .koba-search-logo img{width:100%!important;height:auto!important;max-width:230px!important;max-height:100px!important;object-fit:contain!important;object-position:left center!important}
@media(max-width:700px){.searchband .koba-search-logo img{max-width:135px!important;max-height:76px!important}#philosophy .card,#program .card,.school-panel,.island-news-item,.island-blog-archives,#journal .post,#instagram .insta,.school-map-image,.resort-room{border-radius:10px 12px 9px 11px!important}}


/* 2026-09-28 pencil2: imperfect ruler strokes, occasional offset second pass. */
:root{--pencil-stroke:rgba(67,112,127,.60);--pencil-second:rgba(75,125,141,.28)}
#philosophy .card,#program .card,.school-panel,.island-news-item,.island-blog-archives,#journal .post,#instagram .insta,.school-map-image,.resort-room{
 position:relative!important;isolation:isolate;
 border:1.25px solid var(--pencil-stroke)!important;
 border-radius:12px 9px 13px 10px!important;
 box-shadow:1px 1px 0 rgba(74,112,127,.13),-1px 0 0 rgba(74,112,127,.08)!important;
}
/* Offset second pencil strokes are deliberately incomplete, not a full double border. */
#philosophy .card::after,#program .card::after,.school-panel::after,.island-news-item::after,.island-blog-archives::after,#journal .post::after,#instagram .insta::after,.resort-room::after{
 content:"";position:absolute;inset:4px 3px 3px 5px;pointer-events:none;z-index:2;
 border-top:1px solid var(--pencil-second);border-left:1px solid transparent;
 border-right:1px solid transparent;border-bottom:1px solid transparent;
 border-radius:10px 13px 8px 12px;
 clip-path:polygon(7% 0,82% 0,82% 6px,100% 6px,100% 100%,0 100%,0 8px,7% 8px);
}
#philosophy .card:nth-child(2n)::after,#program .card:nth-child(2n)::after,.island-news-item:nth-child(2n)::after,#journal .post:nth-child(2n)::after{
 inset:3px 5px 5px 3px;border-top-color:transparent;border-bottom-color:var(--pencil-second);
 clip-path:polygon(0 0,100% 0,100% 100%,21% 100%,21% calc(100% - 6px),0 calc(100% - 6px));
}
.searchband .searchinput{border:1.5px solid var(--pencil-stroke)!important;box-shadow:1px 2px 0 var(--pencil-second),-1px -1px 0 rgba(90,140,150,.12)!important}
/* English labels: no decorative font fallback, artificial spacing or mid-word breaks. */
#philosophy .section-visual .visual-copy>span,#program .section-visual .visual-copy>span{
 display:inline-block!important;max-width:100%!important;
 font-family:Arial,Helvetica,sans-serif!important;font-style:normal!important;font-variant:normal!important;
 font-weight:700!important;font-size:clamp(12px,1.2vw,15px)!important;
 letter-spacing:.09em!important;line-height:1.5!important;
 white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;
 text-transform:none!important;transform:none!important;text-shadow:none!important;
}
@media(max-width:700px){#philosophy .section-visual .visual-copy>span,#program .section-visual .visual-copy>span{font-size:12px!important;letter-spacing:.06em!important}}

/* 2026-09-28 pencil3: repair the two editorial panels. The label and heading
   are separate blocks; previous inline-block label let the heading share a line. */
#philosophy .section-visual .visual-copy,
#program .section-visual .visual-copy{min-width:0!important;box-sizing:border-box!important;padding:clamp(25px,3.2vw,48px)!important}
#philosophy .section-visual .visual-copy>span,
#program .section-visual .visual-copy>span{display:block!important;width:max-content!important;max-width:100%!important;margin:0 0 15px!important;line-height:1.5!important}
#philosophy .section-visual .visual-copy>strong,
#program .section-visual .visual-copy>strong{display:block!important;max-width:100%!important;margin:0!important;font-size:clamp(24px,2.55vw,37px)!important;line-height:1.6!important;letter-spacing:.015em!important;overflow-wrap:normal!important;word-break:normal!important}
#philosophy .section-visual .visual-copy>p,
#program .section-visual .visual-copy>p{display:block!important;max-width:100%!important;margin:20px 0 0!important;overflow-wrap:normal!important;word-break:normal!important}
@media(max-width:700px){#philosophy .section-visual .visual-copy,#program .section-visual .visual-copy{padding:27px 23px!important}#philosophy .section-visual .visual-copy>strong,#program .section-visual .visual-copy>strong{font-size:clamp(23px,5.5vw,34px)!important}}

/* Pencilled ruler strokes: lightly uneven contours, short imperfect second
   passes at alternating corners and subtle graphite-colored offsets. */
:root{--pencil-stroke:rgba(72,112,126,.66);--pencil-second:rgba(67,105,119,.34)}
#philosophy .card,#program .card,.school-panel,.island-news-item,.island-blog-archives,#journal .post,#instagram .insta,.school-map-image,.resort-room{
 border-width:1px!important;border-style:solid!important;
 border-color:rgba(79,117,129,.65) rgba(94,132,142,.48) rgba(71,113,127,.61) rgba(102,143,152,.49)!important;
 border-radius:9px 13px 10px 15px!important;
 box-shadow:2px 2px 0 rgba(74,110,123,.14),-1px -1px 0 rgba(91,134,145,.12),inset 1px 1px 0 rgba(78,121,133,.08)!important;
}
#philosophy .card::after,#program .card::after,.school-panel::after,.island-news-item::after,.island-blog-archives::after,#journal .post::after,#instagram .insta::after,.resort-room::after{
 inset:3px 4px 4px 3px!important;border:0!important;border-radius:8px 12px 9px 13px!important;clip-path:none!important;
 background:
 linear-gradient(90deg,transparent 0 5%,rgba(69,111,126,.37) 7% 43%,transparent 48% 100%) top left/100% 1px no-repeat,
 linear-gradient(180deg,transparent 0 16%,rgba(71,109,123,.28) 19% 58%,transparent 64% 100%) top right/1px 100% no-repeat,
 linear-gradient(90deg,transparent 0 28%,rgba(74,116,130,.31) 31% 86%,transparent 91% 100%) bottom left/100% 1px no-repeat,
 linear-gradient(180deg,transparent 0 47%,rgba(81,123,136,.25) 50% 85%,transparent 89% 100%) top left/1px 100% no-repeat!important;
 opacity:.95!important;
}
#philosophy .card:nth-child(even)::after,#program .card:nth-child(even)::after,.island-news-item:nth-child(even)::after,#journal .post:nth-child(even)::after{inset:5px 3px 3px 5px!important;transform:rotate(-.12deg)}
.searchband .searchinput{border-color:rgba(76,119,133,.65)!important;box-shadow:2px 2px 0 rgba(76,119,133,.18),-1px -1px 0 rgba(76,119,133,.11)!important}

/* Crystal soroban beach: photo only, existing live hero copy/buttons remain unchanged. */
:root{--premium-welcome:url('img/crystal-soroban-beach.webp')}
.premium-hero-photo{background-image:var(--premium-welcome)!important;background-position:center top!important;background-size:cover!important}
.premium-hero-photo::after{background:linear-gradient(180deg,transparent 65%,rgba(9,62,77,.48) 100%)!important}
@media(max-width:900px){.premium-hero-photo{background-position:center top!important}}
@media(max-width:700px){.premium-hero-photo{background-position:center top!important}}

/* 2026-09-28 Bright Island: real image assets, readable footer, responsive framing. */
:root{--premium-curriculum:url('img/island-step-up.webp')}
#program .premium-curriculum-photo{background-image:url('img/island-step-up.webp')!important;background-position:center center!important;background-size:cover!important;background-repeat:no-repeat!important}
/* Keep the tropical pier bright; shade only the text area for white text legibility. */
.cta{background-image:linear-gradient(90deg,rgba(8,73,101,.49) 0%,rgba(8,73,101,.24) 37%,rgba(8,73,101,0) 68%),url('img/island-entrance-bright.webp')!important;background-position:center center!important;background-size:cover!important;background-repeat:no-repeat!important;background-color:#16a8cf!important}
.cta .kicker,.cta h2,.cta p{color:#fff!important;text-shadow:0 2px 7px rgba(4,54,81,.52)!important}
.cta .actions .btn{box-shadow:0 5px 0 rgba(4,68,90,.18)!important}
footer strong,footer .wrap>strong,.site-footer strong{color:#fff!important;opacity:1!important;text-shadow:none!important}
@media(max-width:900px){#program .premium-curriculum-photo{background-position:58% center!important}.cta{background-position:57% center!important;background-image:linear-gradient(90deg,rgba(8,73,101,.55),rgba(8,73,101,.13) 85%),url('img/island-entrance-bright.webp')!important}}
@media(max-width:700px){#program .premium-curriculum-photo{background-position:64% center!important;min-height:260px!important}.cta{background-position:66% center!important;background-image:linear-gradient(90deg,rgba(8,73,101,.64),rgba(8,73,101,.33)),url('img/island-entrance-bright.webp')!important}.cta h2{overflow-wrap:anywhere}}

/* 2026-09-28: PC/mobile use the identical philosophy image source.
   Keep the admin-selected --philosophy-image, including on narrow screens. */
#philosophy .premium-philosophy-photo,
#philosophy .premium-philosophy-photo[style]{
  background-image:var(--philosophy-image, url('img/philosophy-default.webp'))!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
}
@media(max-width:700px){
 #philosophy .premium-philosophy-photo,
 #philosophy .premium-philosophy-photo[style]{
  background-image:var(--philosophy-image, url('img/philosophy-default.webp'))!important;
  background-position:center center!important;
 }
}


/* Single actual image element for desktop and mobile: no competing CSS image. */
#philosophy .premium-philosophy-photo,
#philosophy .premium-philosophy-photo[style]{
  background-image:none!important;
  overflow:hidden!important;
  padding:0!important;
}
#philosophy .premium-philosophy-photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:410px!important;
  object-fit:cover!important;
  object-position:center center!important;
}
@media(max-width:700px){
  #philosophy .premium-philosophy-photo img{
    min-height:270px!important;
    height:270px!important;
    object-position:center center!important;
  }
}

/* Final philosophy photo: one source on desktop, mobile and LINE. */
#philosophy .premium-philosophy-photo,
#philosophy .premium-philosophy-photo[style]{background:none!important;background-image:none!important;}
#philosophy .premium-philosophy-photo img{display:block!important;width:100%!important;height:100%!important;min-height:410px!important;object-fit:cover!important;object-position:center center!important;}
@media(max-width:700px){#philosophy .premium-philosophy-photo img{height:270px!important;min-height:270px!important;object-position:center center!important;}}
