:root{
 --brand:#00478a;
 --brand-dark:#003368;
 --brand-light:#e6f0f9;
 --brand-grad:linear-gradient(135deg,#0a5ba8 0%,#1eb3d8 55%,#5dd8ea 100%);
 --accent:#1eb3d8;
 --pearl:#c8b8a2;
 --text:#1a1a2e;
 --text-mid:#555;
 --text-light:#888;
 --bg:#ffffff;
 --bg-off:#f8f9fb;
 --bg-gray:#f2f4f8;
 --border:#e4e8ef;
 --font-ja:'Noto Sans JP',sans-serif;
 --font-serif:'Shippori Mincho',serif;
 --font-en:'Cormorant Garamond',serif;
 --shadow-sm:0 2px 8px rgba(0,0,0,.06);
 --shadow-md:0 6px 24px rgba(0,0,0,.09);
 --shadow-lg:0 16px 48px rgba(0,0,0,.12);
 --radius:8px;
 --radius-lg:16px;
 --header-h:72px;
 --header-h-sp:58px;
 --ease:cubic-bezier(.4,0,.2,1);
 --tr:.32s var(--ease);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
img{max-width:100%;height:auto;display:block}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{
 font-family:var(--font-ja);
 color:var(--text);
 background:var(--bg);
 line-height:1.8;
 overflow-x:hidden;
 word-break:keep-all;
 overflow-wrap:break-word;
}

a{color:inherit;text-decoration:none}
ul{list-style:none}
svg{fill:currentColor}
button{font-family:inherit}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 2rem}
.container--narrow{width:100%;max-width:760px;margin:0 auto;padding:0 2rem}
.site-header{
 position:fixed;inset:0 0 auto;
 z-index:100;
 transition:background var(--tr),box-shadow var(--tr);
}
.site-header[data-overlay="true"]{background:transparent}
body[data-scrolled="true"] .site-header,
.site-header.is-solid{
 background:rgba(255,255,255,.82);
 backdrop-filter:blur(18px) saturate(180%);
 -webkit-backdrop-filter:blur(18px) saturate(180%);
 box-shadow:
 0 1px 0 rgba(0,71,138,.08),
 0 4px 32px rgba(0,71,138,.07);
 border-bottom:1px solid rgba(0,71,138,.07);
 contain:layout style;
}
.header-inner{
 display:flex;
 align-items:center;
 height:var(--header-h);
 max-width:1400px;
 margin:0 auto;
 padding:0 2rem;
 gap:1.5rem;
}
.header-logo{flex-shrink:0}
.header-logo a{display:block;line-height:0}
.header-logo img{width:auto;height:44px;transition:opacity var(--tr)}
.header-logo a:hover img{opacity:.8}
.site-header[data-overlay="true"] .logo-white{display:block}
.site-header[data-overlay="true"] .logo-dark{display:none}
body[data-scrolled="true"] .site-header .logo-white{display:none !important}
body[data-scrolled="true"] .site-header .logo-dark{display:block !important}
.site-header.is-solid .logo-white{display:none !important}
.site-header.is-solid .logo-dark{display:block !important}
.gnav{margin-left:auto}
.gnav-list{display:flex;align-items:center;gap:0}
.gnav-list > li > a{
 display:flex;align-items:center;gap:.25rem;
 padding:.35rem .85rem;
 font-size:.9rem;
 font-weight:500;
 letter-spacing:.06em;
 white-space:nowrap;
 position:relative;
 transition:color var(--tr);
}
.header-logo img{aspect-ratio:160/44;width:auto;height:44px}
.site-header[data-overlay="true"] .gnav-list > li > a{color:rgba(255,255,255,.9)}
.site-header.is-solid .gnav-list > li > a,
body[data-scrolled="true"] .site-header .gnav-list > li > a{color:var(--text)}
.gnav-list > li > a::after{
 content:'';
 position:absolute;
 bottom:-2px;left:.85rem;right:.85rem;
 height:2px;
 background:var(--brand);
 transform:scaleX(0);
 transform-origin:left;
 transition:transform var(--tr);
 border-radius:1px;
}
.gnav-list > li > a:hover::after,
.gnav-list > li > a.is-current::after{transform:scaleX(1)}
.gnav-list > li > a.is-current{color:var(--brand) !important;font-weight:700}
.gnav-shop{position:relative;padding-bottom:0}
.gnav-shop > a{display:flex;align-items:center;gap:.3rem}
.gnav-shop > a .shop-caret{width:10px;height:10px;transition:transform .25s;flex-shrink:0}
.gnav-shop:hover > a .shop-caret{transform:rotate(180deg)}
.shop-dropdown{
 position:absolute;
 top:calc(100% + 12px);right:0;
 width:220px;
 background:#fff;
 border-radius:var(--radius);
 box-shadow:0 8px 40px rgba(0,0,0,.15);
 border:1px solid var(--border);
 padding:.4rem 0;
 opacity:0;pointer-events:none;
 transform:translateY(6px);
 transition:opacity .22s ease,transform .22s ease;
 z-index:200;
}
.shop-dropdown::before{
 content:'';
 position:absolute;
 top:-14px;left:0;right:0;
 height:14px;
}
.gnav-shop:hover .shop-dropdown{
 opacity:1;pointer-events:auto;transform:translateY(0);
}
.shop-dropdown a{
 display:flex;align-items:center;gap:.75rem;
 padding:.7rem 1.25rem;
 font-size:.8125rem;color:var(--text);
 border-bottom:1px solid var(--bg-gray);
 transition:background var(--tr),color var(--tr);
 white-space:nowrap;
 letter-spacing:.03em;
}
.shop-dropdown a:last-child{border-bottom:none}
.shop-dropdown a:hover{background:var(--bg-off);color:var(--brand)}
.shop-dropdown__icon{font-size:1rem;line-height:1;flex-shrink:0}
.gnav-shop > a::after{display:none}
.gnav-shop > a{
 background:transparent;
 color:inherit !important;
 border-radius:var(--radius);
 padding:.35rem .85rem;
 font-size:.9rem;
 letter-spacing:.06em;
 font-weight:600;
 border:none;
 opacity:.9;
 transition:opacity var(--tr),color var(--tr);
}
.gnav-shop > a:hover{
 opacity:1;
}
.site-header[data-overlay="true"] .gnav-shop > a{
 color:rgba(255,255,255,.9) !important;
}
body[data-scrolled="true"] .site-header .gnav-shop > a,
.site-header.is-solid .gnav-shop > a{
 color:var(--text) !important;
 font-weight:500;
}
.menu-btn{
 display:none;
 flex-direction:column;
 justify-content:center;
 gap:5px;
 background:none;border:none;
 cursor:pointer;
 padding:8px;margin-right:-8px;
 width:40px;height:40px;
 flex-shrink:0;
 order:-1;
}
.menu-btn span{
 display:block;
 width:22px;height:1.5px;
 border-radius:1px;
 background:rgba(255,255,255,.9);
 transition:var(--tr);
}
.site-header.is-solid .menu-btn span,
body[data-scrolled="true"] .site-header .menu-btn span{background:var(--text)}
.menu-btn.is-active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-btn.is-active span:nth-child(2){opacity:0;transform:scaleX(0)}
.menu-btn.is-active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.drawer{
 position:fixed;top:0;right:-100%;
 width:min(320px,82vw);height:100%;
 background:var(--bg);
 z-index:150;
 padding:5.5rem 2rem 2rem;
 transition:right .42s var(--ease);
 box-shadow:-4px 0 40px rgba(0,0,0,.12);
 overflow-y:auto;
}
.drawer.is-open{right:0}
.drawer-overlay{
 position:fixed;inset:0;
 background:rgba(10,15,30,.45);
 z-index:140;
 opacity:0;pointer-events:none;
 transition:opacity var(--tr);
 backdrop-filter:blur(2px);
}
.drawer-overlay.is-active{opacity:1;pointer-events:auto}
.drawer-close{
 position:absolute;top:1.25rem;right:1.25rem;
 background:none;border:none;
 cursor:pointer;font-size:.8125rem;
 color:var(--text-light);
 padding:.4rem .6rem;
 border-radius:var(--radius);
 transition:background var(--tr);
}
.drawer-close:hover{background:var(--bg-gray)}
.drawer-list li{border-bottom:1px solid var(--border)}
.drawer-list a{
 display:block;padding:1rem .5rem;
 font-size:.9375rem;font-weight:500;
 transition:color var(--tr),padding-left var(--tr);
}
.drawer-list a:hover{color:var(--brand);padding-left:1rem}
.drawer-list a.is-current{color:var(--brand);font-weight:700}
.drawer-shop-item{border-bottom:1px solid var(--border)}
.drawer-shop-btn{
 display:flex;align-items:center;justify-content:space-between;
 width:100%;padding:1rem .5rem;
 font-size:.9375rem;font-weight:700;color:var(--brand);
 background:none;border:none;cursor:pointer;
 font-family:var(--font-ja);letter-spacing:.06em;
}
.drawer-shop-btn .drawer-shop-arrow{transition:transform .25s;font-size:.8rem}
.drawer-shop-btn.is-open .drawer-shop-arrow{transform:rotate(180deg)}
.drawer-shop-sub{
 display:none;padding:.25rem 0 .75rem .5rem;
 border-top:1px solid var(--bg-gray);
}
.drawer-shop-sub.is-open{display:block}
.drawer-shop-sub a{
 display:flex;align-items:center;gap:.5rem;
 padding:.65rem .75rem;font-size:.875rem;color:var(--text-mid);
 border-radius:var(--radius);transition:background var(--tr),color var(--tr);
}
.drawer-shop-sub a:hover{background:var(--bg-off);color:var(--brand)}
.hero{
 position:sticky;
 top:0;
 z-index:0;
 height:100svh;min-height:520px;
 display:flex;align-items:flex-end;
 padding-bottom:6rem;
 overflow:hidden;
 contain:layout style;
}
.hero-video{
 position:absolute;inset:0;
 width:100%;height:100%;
 object-fit:cover;z-index:0;
 will-change:transform;
}
.hero-overlay{
 position:absolute;inset:0;z-index:1;
 background:linear-gradient(
 to bottom,
 rgba(0,0,0,.08) 0%,
 rgba(0,0,0,.12) 50%,
 rgba(0,0,0,.48) 100%
 );
}
.hero-body{
 position:relative;z-index:2;
 width:100%;max-width:1400px;
 margin:0 auto;padding:0 3rem;
}
.hero-title{
 font-family:var(--font-serif);
 font-size:clamp(2.6rem,7vw,5.25rem);
 font-weight:700;color:#fff;
 line-height:1.18;letter-spacing:.04em;
 text-shadow:0 2px 32px rgba(0,0,0,.25);
 animation:heroIn .9s ease both;
 will-change:opacity,transform;
}
.hero-sub{
 font-family:var(--font-en);
 font-size:clamp(.75rem,1.5vw,.9375rem);
 color:rgba(255,255,255,.78);
 margin-top:1.5rem;letter-spacing:.1em;
 font-style:italic;
 animation:heroIn .9s .22s ease both;
}
@keyframes heroIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.scroll-down{
 position:absolute;bottom:2rem;right:2.5rem;z-index:2;
 display:flex;flex-direction:column;align-items:center;gap:.5rem;
 color:rgba(255,255,255,.75);writing-mode:vertical-rl;
 letter-spacing:.25em;animation:heroIn .9s .45s ease both;
}
.scroll-down__text{font-family:var(--font-en);font-size:.6875rem}
.scroll-down__line{
 display:block;width:1px;height:clamp(60px,10vw,100px);
 background:rgba(255,255,255,.3);position:relative;overflow:hidden;
}
.scroll-down__line::after{
 content:'';position:absolute;inset:0;
 background:rgba(255,255,255,.9);
 transform-origin:top;
 animation:scrollLine 2.4s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes scrollLine{
 0%{transform:translateY(-100%) scaleY(0)}
 45%{transform:translateY(0%) scaleY(1)}
 100%{transform:translateY(100%) scaleY(0)}
}
.intro{
 padding:7rem 1rem 3rem;
 text-align:center;
 background:
 linear-gradient(155deg,#f0f7ff 0%,#e8f3fb 35%,#f7f4ef 70%,#fdfcfa 100%);
 position:relative;
 z-index:1;
 overflow:hidden;
}
.intro::before{
 content:'';
 position:absolute;
 width:700px;height:700px;
 top:-220px;left:-140px;
 background:radial-gradient(ellipse,rgba(0,100,200,.10) 0%,transparent 62%);
 pointer-events:none;z-index:0;
}
.intro > .container--narrow{position:relative;z-index:1}
.intro::after{display:none}
.intro-glow{
 position:absolute;
 right:-100px;top:50%;
 transform:translateY(-50%);
 width:520px;height:520px;
 background:radial-gradient(ellipse,rgba(200,160,80,.09) 0%,transparent 65%);
 pointer-events:none;z-index:0;
}
.intro-lines{
 position:absolute;
 inset:0;
 background-image:
 repeating-linear-gradient(
 -55deg,
 transparent,
 transparent 60px,
 rgba(0,71,138,.025) 60px,
 rgba(0,71,138,.025) 61px
 );
 pointer-events:none;z-index:0;
}
.intro-lead{
 display:inline-block;
 font-size:.8125rem;font-weight:700;
 letter-spacing:.12em;color:var(--brand);
 margin-bottom:1.25rem;
 padding:.3em 1.2em;
 border:1px solid var(--brand);
 border-radius:999px;
}
.section-title{
 font-family:var(--font-serif);
 font-size:clamp(1.75rem,4vw,2.75rem);
 font-weight:700;line-height:1.35;
 letter-spacing:.02em;margin-bottom:2.5rem;
}
.intro-body p{
 font-size:.9375rem;line-height:2.05;
 color:var(--text-mid);margin-bottom:1.5rem;
}
.intro-note{font-size:.75rem !important;color:var(--text-light) !important;margin-top:2rem}
.items{background:var(--bg-off);padding-bottom:2rem;position:relative;z-index:1}
.section-label{
 font-family:var(--font-en);
 font-size:clamp(2rem,5vw,3rem);
 font-weight:300;letter-spacing:.2em;
 color:var(--text);
 padding:4rem max(2rem,5vw) 2rem;
 border-bottom:1px solid var(--border);
 margin-bottom:.5rem;
 max-width:1200px;
 margin-left:auto;
 margin-right:auto;
 display:block;
}
.section-label--phil{
 background:none;
 border-bottom-color:rgba(0,71,138,.15);
 display:flex;align-items:baseline;gap:1.25rem;
 flex-wrap:wrap;
 padding-left:0;padding-right:0;
}
.section-label__ja{
 font-family:var(--font-serif);
 font-size:clamp(.875rem,1.5vw,1rem);
 font-weight:400;
 letter-spacing:.14em;
 color:var(--text-mid);
}
.item-panel{
 position:relative;
 height:clamp(320px,52vw,580px);
 overflow:hidden;
 display:flex;align-items:center;
}
.item-panel__bg{
 position:absolute;inset:0;
 background-size:cover;background-position:center;
 transform:scale(1.06);
 transition:transform .9s var(--ease);
}
.item-panel:hover .item-panel__bg{will-change:transform}
.item-panel:hover .item-panel__bg{transform:scale(1.09)}
.item-panel--right::after{
 content:'';position:absolute;inset:0;
 background:linear-gradient(
 to left,
 rgba(255,255,255,.88) 22%,
 rgba(255,255,255,.45) 52%,
 transparent 70%
 );
}
.item-panel--left::after{
 content:'';position:absolute;inset:0;
 background:linear-gradient(
 to right,
 rgba(255,255,255,.88) 22%,
 rgba(255,255,255,.45) 52%,
 transparent 70%
 );
}
.item-panel__content{
 position:relative;z-index:2;
 padding:2.5rem 4rem;
 max-width:480px;
}
.item-panel__content--right{margin-left:auto;margin-right:clamp(2.5rem,6%,7rem);text-align:right}
.item-panel__content--left{margin-right:auto;margin-left:clamp(2.5rem,6%,7rem);text-align:left}
.item-panel__lead{
 font-size:.8125rem;font-weight:300;
 letter-spacing:.06em;color:var(--text);
 margin-bottom:.6rem;
}
.item-panel__title{
 font-family:var(--font-serif);
 font-size:clamp(1.5rem,3.2vw,2.5rem);
 font-weight:700;line-height:1.25;
 margin-bottom:1.75rem;letter-spacing:.02em;
 color:var(--text);
}
.btn{
 display:inline-flex;align-items:center;gap:.5rem;
 padding:.75rem 1.75rem;border-radius:6px;
 font-size:.8125rem;font-weight:700;letter-spacing:.08em;
 cursor:pointer;border:none;
 transition:transform var(--tr),box-shadow var(--tr),background var(--tr);
 position:relative;overflow:hidden;
}
.btn::after{
 content:'';
 position:absolute;inset:0;
 background:rgba(255,255,255,0);
 transition:background var(--tr);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,71,138,.28)}
.btn:hover::after{background:rgba(255,255,255,.12)}
.btn svg{width:1em;height:1em;flex-shrink:0}
.btn--dark{background:var(--brand);color:#fff}
.btn--dark:hover{background:var(--brand-dark)}
.history{background:var(--bg-off);padding-bottom:5rem;position:relative;z-index:1;overflow:hidden}
.history-row{
 display:grid;
 grid-template-columns:1fr 1fr;
 align-items:center;gap:4rem;
 max-width:1100px;margin:0 auto;
 padding:5rem 2rem;
 border-bottom:1px solid var(--border);
}
.history-row:last-child{border-bottom:none}
.history-row__brand-origin{
 grid-template-columns:1fr 1.25fr;
}
.history-row__image--lg img{
 width:100%;
 height:auto;
 border-radius:var(--radius);
 box-shadow:var(--shadow-md);
}
.history-row__image img{
 width:100%;border-radius:var(--radius);
 box-shadow:var(--shadow-md);
}
.history-row__title{
 font-family:var(--font-serif);
 font-size:clamp(1.125rem,2.5vw,1.5rem);
 font-weight:700;line-height:1.45;
 margin-bottom:1.25rem;letter-spacing:.02em;
}
.history-row__text p{font-size:.9375rem;line-height:2;color:var(--text-mid)}
.brand{background:var(--bg-gray);padding:6rem 1rem;position:relative;z-index:1}
.brand__title{
 font-family:var(--font-serif);
 font-size:clamp(1.125rem,2.5vw,1.5rem);
 font-weight:700;line-height:1.65;
 margin-bottom:1.75rem;letter-spacing:.02em;
}
.brand__body{font-size:.9375rem;line-height:2.1;color:var(--text-mid);margin-bottom:3rem}
.brand__images{
 display:grid;grid-template-columns:1fr 1fr;
 gap:1.5rem;max-width:820px;margin:0 auto;
}
.brand__images img{
 width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;
 border-radius:var(--radius);box-shadow:var(--shadow-sm);
}
.page-breadcrumb{
 position:relative;z-index:2;
 padding:calc(var(--header-h) + .875rem) 3rem 0;
 font-size:.75rem;
 display:flex;align-items:center;gap:.5rem;
 max-width:1200px;margin:0 auto;
 color:rgba(255,255,255,.65);
}
.page-breadcrumb a{color:rgba(255,255,255,.88);transition:opacity .2s}
.page-breadcrumb a:hover{opacity:.75}
.page-breadcrumb__sep{opacity:.4}
.page-fv{
 position:relative;
 overflow:hidden;
}
.page-fv--blue{
 background:
 linear-gradient(
 135deg,
 rgba(0,40,110,.35) 0%,
 rgba(0,60,150,.15) 50%,
 rgba(0,80,180,.10) 100%
 ),
 url('./img/back.webp') center top / cover no-repeat;
 background-attachment:fixed,fixed;
 color:#fff;
 min-height:440px;
}
@supports (-webkit-overflow-scrolling:touch){
 .page-fv--blue{
 background-attachment:scroll,scroll;
}
}
@media (max-width:599px){
 .page-fv--blue{
 background-image:
 linear-gradient(
 135deg,
 rgba(0,40,110,.35) 0%,
 rgba(0,60,150,.15) 50%,
 rgba(0,80,180,.10) 100%
 ),
 url('./img/back-sp.webp');
 background-attachment:scroll,scroll;
}
}
.page-fv--blue::before{display:none}
.page-fv--blue::after{
 content:'';
 position:absolute;inset:0;z-index:0;
 background:
 radial-gradient(ellipse 55% 70% at 110% 110%,rgba(94,222,234,.22) 0%,transparent 65%),
 radial-gradient(ellipse 40% 50% at -5% 10%,rgba(255,255,255,.1) 0%,transparent 60%);
 pointer-events:none;
}
.page-fv__inner{
 position:relative;z-index:1;
 display:flex;align-items:center;
 max-width:1200px;margin:0 auto;
 padding:1.5rem 3rem 4rem;
 gap:3rem;
}
.page-fv__text{flex:1}
.page-fv__catch{
 display:inline-block;
 font-size:.8125rem;font-weight:700;
 letter-spacing:.08em;
 opacity:.85;margin-bottom:.75rem;
 padding:.2em .9em;
 border:1px solid rgba(255,255,255,.5);
 border-radius:999px;
}
.page-fv__title{
 font-family:var(--font-serif);
 font-size:clamp(1.875rem,4.5vw,3.25rem);
 font-weight:700;line-height:1.18;
 letter-spacing:.02em;margin-bottom:1.25rem;
}
.page-fv__desc{font-size:.9375rem;line-height:1.95;max-width:460px;opacity:.9}
.page-fv__price{
 font-size:.8125rem;margin-top:1.25rem;
 opacity:.82;line-height:1.75;
 padding-top:1rem;
 border-top:1px solid rgba(255,255,255,.25);
}
.page-fv__badge{
 display:inline-block;
 border:1px solid rgba(255,255,255,.6);
 padding:.1em .6em;font-size:.75rem;
 margin-right:.5em;border-radius:4px;
 vertical-align:middle;letter-spacing:.04em;
}
.page-fv__image{
 flex:0 0 auto;
 width:min(460px,44vw);
 display:flex;justify-content:center;align-items:center;
}
.page-fv__image img{
 max-height:500px;width:auto;
 filter:drop-shadow(0 16px 48px rgba(0,0,0,.22));
 animation:heroIn .8s .15s ease both;
}
.recommend{
 padding:4rem 2rem;
 background:var(--bg);
 text-align:center;
 border-bottom:1px solid var(--border);
}
.recommend__title{
 font-family:var(--font-serif);
 font-size:clamp(1.25rem,3vw,1.625rem);
 font-weight:700;margin-bottom:2rem;
 position:relative;display:inline-block;
}
.recommend__title::after{
 content:'';
 position:absolute;bottom:-.5rem;left:50%;transform:translateX(-50%);
 width:32px;height:2px;
 background:var(--brand);border-radius:1px;
}
.recommend__list{display:flex;flex-direction:column;gap:.6rem;text-align:left;max-width:480px;margin:0 auto}
.recommend__list li{
 display:flex;align-items:flex-start;gap:.75rem;
 font-size:.9375rem;
}
.recommend__list li::before{
 content:'✓';flex-shrink:0;
 color:var(--brand);font-weight:700;margin-top:.1em;
 background:var(--brand-light);width:20px;height:20px;
 display:flex;align-items:center;justify-content:center;
 border-radius:50%;font-size:.7rem;
}
.gallery-4{
 display:grid;grid-template-columns:repeat(4,1fr);gap:0;
 max-width:1200px;margin:0 auto;
}
.gallery-4 img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.point-section{padding:5.5rem 2rem}
.point-section--gray{background:var(--bg-off)}
.point-section--white{background:var(--bg)}
.point-badge{
 display:block;
 width:calc(100% + 4rem);
 margin-left:-2rem;
 margin-right:-2rem;
 margin-bottom:1.75rem;
 padding:.7em 2rem;
 font-family:var(--font-en);
 font-size:1rem;
 font-weight:800;
 letter-spacing:.3em;
 text-transform:uppercase;
 color:#fff;
 background:var(--brand);
 position:relative;
}
.point-badge::before{
 content:'';
 position:absolute;
 left:0;top:0;bottom:0;
 width:6px;
 background:var(--accent);
}
.point-badge::after{display:none}
.point-title{
 font-family:var(--font-serif);
 font-size:clamp(1.375rem,3vw,1.875rem);
 font-weight:700;color:var(--text);
 margin-bottom:1.25rem;letter-spacing:.02em;line-height:1.4;
}
.point-subtitle{
 font-size:1rem;font-weight:700;
 margin:1.75rem 0 .75rem;
 display:flex;align-items:center;gap:.6rem;color:var(--brand);
 flex-wrap:nowrap;
 word-break:keep-all;
 overflow-wrap:break-word;
}
.point-subtitle::before{
 content:'';display:inline-block;
 width:14px;height:14px;border-radius:50%;
 border:2px solid var(--brand);flex-shrink:0;
}
.point-body{font-size:.9375rem;line-height:2.05;color:var(--text-mid);max-width:820px}
.point-img{margin:2.25rem auto;max-width:820px}
.point-img img{width:100%;border-radius:var(--radius)}
.point-note{font-size:.75rem;color:var(--text-light);margin-top:.75rem;line-height:1.7}
.scene-grid{
 display:grid;grid-template-columns:repeat(4,1fr);
 gap:.75rem;max-width:1200px;
 margin:0 auto;padding:0 2rem 3rem;
}
.scene-grid img{
 width:100%;
 height:auto;
 object-fit:contain;
 display:block;
}
.scene-grid--5{grid-template-columns:repeat(5,1fr)}
.scene-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.scene-caption{text-align:center;font-size:.8125rem;color:var(--text-light);margin-top:.4rem}
.two-col{
 display:grid;grid-template-columns:1fr 1fr;
 gap:3rem;align-items:center;
 max-width:1100px;margin:0 auto;
}
.alert-box{
 background:#fff5f7;
 border-left:4px solid #e00555;
 padding:1.25rem 1.5rem;
 border-radius:0 var(--radius) var(--radius) 0;
 margin:1.75rem 0;
 font-size:.9375rem;line-height:1.85;font-weight:500;
}
.mechanism-grid{
 display:grid;grid-template-columns:repeat(3,1fr);
 gap:1.5rem;margin-top:2.5rem;
}
.mechanism-step{
 background:var(--bg);
 border-radius:var(--radius-lg);padding:2rem 1.5rem;
 text-align:center;
 border:1px solid var(--border);
 box-shadow:var(--shadow-sm);
 transition:box-shadow var(--tr),transform var(--tr);
}
.mechanism-step:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.mstep-num{
 display:inline-block;font-family:var(--font-en);
 font-size:.75rem;font-weight:700;
 letter-spacing:.15em;color:var(--brand);
 margin-bottom:.6rem;text-transform:uppercase;
}
.mstep-title{
 font-family:var(--font-serif);
 font-size:1.25rem;font-weight:700;
 margin-bottom:.75rem;color:var(--text);
}
.mechanism-step p{font-size:.875rem;line-height:1.8;color:var(--text-mid)}
.product-info{padding:5.5rem 2rem;background:var(--bg);content-visibility:auto;contain-intrinsic-size:0 600px}
.point-section + .product-info{border-top:1px solid var(--border)}
.product-info__title{
 font-family:var(--font-en);
 font-size:clamp(1.75rem,4vw,2.75rem);
 font-weight:300;letter-spacing:.12em;
 color:var(--text);margin-bottom:3rem;
 padding-bottom:1rem;border-bottom:1px solid var(--border);
}
.product-info__inner{max-width:1200px;margin:0 auto}
.info-block{margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--border)}
.info-block:last-child{border-bottom:none}
.info-block__label{
 font-size:.8125rem;font-weight:700;
 color:var(--brand);margin-bottom:.75rem;
 letter-spacing:.08em;text-transform:uppercase;
}
.info-block__body{font-size:.9375rem;line-height:2.05;color:var(--text-mid)}
.info-block__body p{margin-bottom:.85rem}
.info-block__body ul{padding-left:1.25rem;list-style:disc}
.info-block__body li{margin-bottom:.4rem}
.brush-hero{
 position:relative;
 background:url('./img/tb-scene01.webp') right center / cover no-repeat;
 padding:5.5rem 2rem;
 overflow:hidden;
}
.brush-hero::before{
 content:'';
 position:absolute;inset:0;
 background:linear-gradient(
 to right,
 rgba(255,255,255,.96) 0%,
 rgba(255,255,255,.88) 45%,
 rgba(255,255,255,.55) 75%,
 rgba(255,255,255,.15) 100%
 );
 z-index:0;
}
.brush-hero > *{position:relative;z-index:1}
.brush-point{
 background:rgba(255,255,255,.72);
 backdrop-filter:blur(2px);
 border-radius:var(--radius-lg);padding:3.5rem 3rem;
 max-width:1100px;margin:0 auto;
 border:1px solid rgba(255,255,255,.6);
 box-shadow:0 8px 40px rgba(0,0,0,.06);
}
.brush-point__title{
 font-family:var(--font-serif);
 font-size:clamp(1.5rem,3.5vw,2.25rem);
 font-weight:700;margin-bottom:1rem;color:var(--text);
}
.brush-point__lead{font-size:.9375rem;line-height:2;color:var(--text-mid);margin-bottom:2rem;max-width:720px}
.brush-steps{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.brush-step{
 background:var(--bg);border-radius:var(--radius);
 padding:1.75rem;box-shadow:var(--shadow-sm);
 border:1px solid rgba(0,0,0,.04);
 transition:box-shadow var(--tr),transform var(--tr);
}
.brush-step:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.brush-step__num{
 font-family:var(--font-en);
 font-size:1.75rem;font-weight:700;
 color:var(--brand);margin-bottom:.5rem;
 display:flex;align-items:center;gap:.5rem;line-height:1;
}
.brush-step__num span{
 font-family:var(--font-ja);font-size:.9375rem;
 color:var(--text);font-weight:700;
}
.brush-step p{font-size:.875rem;line-height:1.85;color:var(--text-mid)}
.flavor-section{
 display:grid;
 grid-template-columns:1fr 1fr;
 max-width:1200px;margin:0 auto;
 border-radius:0;
 overflow:hidden;
}
.flavor-item{
 position:relative;
 min-height:440px;
 background-size:cover;
 background-position:center;
 overflow:hidden;
 display:flex;
 align-items:flex-end;
}
.flavor-item::before{
 content:'';
 position:absolute;inset:0;
 background:linear-gradient(
 to top,
 rgba(0,20,40,.72) 0%,
 rgba(0,20,40,.2) 50%,
 transparent 100%
 );
 z-index:1;
}
.flavor-item__person{
 position:absolute;
 right:0;bottom:0;
 width:50%;
 height:88%;
 object-fit:cover;
 object-position:top center;
 z-index:2;
}
.flavor-item__info{
 position:relative;
 z-index:3;
 padding:2rem 1.75rem;
 color:#fff;
 max-width:55%;
}
.flavor-item__info h3{
 font-family:var(--font-serif);
 font-size:clamp(1rem,2.2vw,1.375rem);
 font-weight:700;
 margin-bottom:.5rem;
 line-height:1.3;
}
.flavor-item__info p{
 font-size:.8125rem;
 line-height:1.75;
 opacity:.88;
}
.flavor-item__moji{
 position:absolute;
 top:8%;left:4%;
 width:62%;
 max-width:320px;
 z-index:4;
 mix-blend-mode:screen;
 pointer-events:none;
 opacity:.92;
 filter:drop-shadow(0 2px 12px rgba(255,255,255,.15));
}
@media(max-width:768px){
 .flavor-item__moji{
  width:68%;
  max-width:220px;
  top:6%;left:3%;
 }
}
.faq-page-header{
 padding-top:calc(var(--header-h) + 3.5rem);
 padding-bottom:2.5rem;
 background:var(--bg-off);text-align:center;
}
.faq-cat-nav{
 background:var(--bg);border-bottom:1px solid var(--border);
 padding:.875rem 2rem;
 position:sticky;top:var(--header-h);z-index:50;
 box-shadow:var(--shadow-sm);
}
.faq-cat-nav ul{
 display:flex;flex-wrap:wrap;gap:.5rem 1rem;
 max-width:900px;margin:0 auto;justify-content:center;
}
.faq-cat-nav a{
 font-size:.8125rem;color:var(--brand);font-weight:600;
 padding:.3em .8em;border-radius:999px;
 border:1px solid var(--brand);
 transition:background var(--tr),color var(--tr);
}
.faq-cat-nav a:hover{background:var(--brand);color:#fff}
.faq-page{padding:3.5rem 2rem 6rem;content-visibility:auto;contain-intrinsic-size:0 800px}
.faq-category{margin-bottom:3rem}
.faq-category__title{
 font-size:1rem;font-weight:700;color:#fff;
 background:var(--brand-grad);
 padding:.8em 1.5em;border-radius:var(--radius);
 margin-bottom:1rem;letter-spacing:.04em;
}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item__q{
 display:flex;align-items:flex-start;gap:1rem;
 padding:1.25rem 1rem;cursor:pointer;
 font-weight:500;font-size:.9375rem;
 transition:color var(--tr);user-select:none;list-style:none;
 line-height:1.6;
}
.faq-item__q::-webkit-details-marker{display:none}
.faq-item__q::before{
 content:'Q';flex-shrink:0;
 font-family:var(--font-en);font-size:.8125rem;font-weight:700;
 color:var(--brand);line-height:1.2;
 background:var(--brand-light);
 width:28px;height:28px;border-radius:50%;
 display:flex;align-items:center;justify-content:center;
 margin-top:.1em;
}
.faq-item__q::after{
 content:'+';flex-shrink:0;margin-left:auto;
 font-size:1.375rem;color:var(--brand);line-height:1;
 transition:transform var(--tr);
}
details[open] > .faq-item__q::after{transform:rotate(45deg)}
details[open] > .faq-item__q{color:var(--brand)}
.faq-item__a{
 padding:.25rem 1rem 1.5rem calc(1rem + 28px + 1rem);
 font-size:.9375rem;line-height:1.9;color:var(--text-mid);
}
.site-footer{
 background:var(--brand-dark);
 color:#fff;
 padding:3.5rem 2rem 2.5rem;
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:0;
 text-align:center;
}
.footer-brand{margin-bottom:2rem}
.footer-brand__logo img{
 height:44px;width:auto;
 opacity:.9;
 filter:brightness(10);
 transition:opacity var(--tr);
}
.footer-brand__logo:hover img{opacity:1}
.footer-sns{
 display:flex;
 flex-wrap:wrap;
 justify-content:center;
 align-items:center;
 gap:.25rem 0;
 margin-bottom:2rem;
}
.footer-sns__item{
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:.4rem;
 padding:.6rem .9rem;
 color:rgba(255,255,255,.80);
 text-decoration:none;
 transition:color var(--tr),transform var(--tr);
 border-radius:var(--radius);
}
.footer-sns__item:hover{
 color:#fff;
 transform:translateY(-2px);
}
.footer-sns__item--shop{color:rgba(255,255,255,.5)}
.footer-sns__item--shop:hover{color:rgba(255,255,255,.9)}
.footer-sns__icon{
 width:24px;height:24px;
 display:block;flex-shrink:0;
}
.footer-sns__item span{
 font-size:.625rem;
 letter-spacing:.06em;
 font-family:var(--font-en);
 font-weight:500;
 text-transform:uppercase;
 line-height:1;
 white-space:nowrap;
}
.footer-sns__sep{
 width:1px;
 height:36px;
 background:rgba(255,255,255,.2);
 margin:0 .5rem;
 flex-shrink:0;
}
.footer-rule{
 width:100%;
 max-width:900px;
 height:1px;
 background:rgba(255,255,255,.12);
 margin-bottom:1.75rem;
}
.footer-nav ul{
 display:flex;flex-wrap:wrap;justify-content:center;
 gap:.15rem 2rem;
 margin-bottom:1.25rem;
}
.footer-nav a{
 font-size:.75rem;letter-spacing:.1em;
 color:rgba(255,255,255,.75);transition:color var(--tr);
}
.footer-nav a:hover{color:#fff}
.footer-copy{font-size:.6875rem;color:rgba(255,255,255,.65);letter-spacing:.04em}
@media (max-width:599px){
 .site-footer{padding:3rem 1rem 2rem}
 .footer-sns{gap:.1rem 0}
 .footer-sns__item{padding:.5rem .65rem}
 .footer-sns__icon{width:22px;height:22px}
 .footer-sns__item span{font-size:.5625rem}
 .footer-sns__sep{height:28px;margin:0 .25rem}
 .footer-nav ul{gap:.15rem 1.25rem}
}
.fade-in,
.fade-in-left,
.fade-in-right{
 will-change:opacity,transform;
}
.fade-in{
 opacity:0;
 transform:translateY(28px);
 transition:opacity .72s ease,transform .72s ease;
}
.fade-in.is-visible{opacity:1;transform:none;will-change:auto}
.fade-in-left{
 opacity:0;
 transform:translateX(-36px);
 transition:opacity .72s ease,transform .72s ease;
}
.fade-in-left.is-visible{opacity:1;transform:none;will-change:auto}
.fade-in-right{
 opacity:0;
 transform:translateX(36px);
 transition:opacity .72s ease,transform .72s ease;
}
.fade-in-right.is-visible{opacity:1;transform:none;will-change:auto}
.page-top{
 position:fixed;bottom:2rem;right:2rem;
 width:46px;height:46px;border-radius:50%;
 background:var(--brand);color:#fff;
 border:none;cursor:pointer;
 display:flex;align-items:center;justify-content:center;
 z-index:99;
 box-shadow:0 4px 18px rgba(0,71,138,.38);
 opacity:0;pointer-events:none;
 transform:translateY(10px);
 transition:opacity var(--tr),transform var(--tr),background var(--tr);
}
.page-top svg{width:18px;height:18px}
.page-top.is-visible{opacity:1;pointer-events:auto;transform:none}
.page-top:hover{background:var(--brand-dark)}
.step-video{
 position:relative;
 margin:1rem 0;
 border-radius:var(--radius);
 overflow:hidden;
 background:#111;
 aspect-ratio:16/9;
}
.step-video video{width:100%;height:100%;object-fit:cover;display:block}
.section-divider{
 width:40px;height:2px;
 background:var(--brand);
 margin:1.5rem auto;
 border-radius:1px;
}
.highlight-card{
 background:linear-gradient(135deg,var(--brand-light) 0%,rgba(255,255,255,.4) 100%);
 border:1px solid rgba(0,71,138,.12);
 border-radius:var(--radius-lg);
 padding:2rem 2.5rem;
 margin:2rem 0;
}
.how-to-grid{
 display:grid;grid-template-columns:repeat(3,1fr);
 gap:1.5rem;max-width:900px;margin:2.5rem auto 0;
}
.how-to-step{
 text-align:center;
 background:var(--bg);border-radius:var(--radius-lg);
 padding:2rem 1.25rem;
 border:1px solid var(--border);
 box-shadow:var(--shadow-sm);
}
.how-to-step__num{
 width:48px;height:48px;
 background:var(--brand-grad);
 border-radius:50%;
 display:flex;align-items:center;justify-content:center;
 margin:0 auto 1rem;
 font-family:var(--font-en);font-size:1.25rem;font-weight:700;
 color:#fff;line-height:1;
}
.how-to-step__text{font-size:.875rem;line-height:1.8;color:var(--text-mid)}
.how-to-step__title{font-weight:700;color:var(--text);margin-bottom:.4rem;font-size:.9375rem}
.ingredient-grid{
 display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
 gap:1rem;margin-top:2rem;
}
.ingredient-card{
 background:var(--bg);border-radius:var(--radius);
 padding:1.25rem;border:1px solid var(--border);
 box-shadow:var(--shadow-sm);
}
.ingredient-card__name{
 font-size:.8125rem;font-weight:700;color:var(--brand);
 margin-bottom:.4rem;letter-spacing:.03em;
}
.ingredient-card__desc{font-size:.8125rem;line-height:1.75;color:var(--text-mid)}
.lifestyle-strip{
 height:clamp(200px,35vw,420px);
 overflow:hidden;
 position:relative;
}
.lifestyle-strip img{
 width:100%;height:100%;
 object-fit:cover;
 object-position:center 30%;
}
.lifestyle-strip::after{
 content:'';
 position:absolute;inset:0;
 background:linear-gradient(
 to bottom,
 rgba(0,0,0,.12) 0%,
 rgba(0,0,0,.04) 50%,
 rgba(0,0,0,.12) 100%
 );
}
.scene-section-header{
 padding:5.5rem 2rem 0;
 background:var(--bg-off);
}
@media (max-width:960px){
:root{--header-h:var(--header-h-sp)}
 .gnav{display:none}
 .menu-btn{display:flex}
 .header-inner{
 display:grid;
 grid-template-columns:1fr 44px;
 padding:0 1rem;
}
 .menu-btn{order:1;margin:0}
 .header-logo{order:0;display:flex;justify-content:flex-start}
 .hero-body{padding:0 1.5rem}
 .scroll-down{right:1.25rem}
 .item-panel{height:clamp(260px,62vw,440px)}
 .item-panel__content{max-width:55%;padding:2rem}
 .item-panel--right::after{
 background:linear-gradient(to left,rgba(255,255,255,.9) 28%,rgba(255,255,255,.35) 55%,transparent 72%);
}
 .item-panel--left::after{
 background:linear-gradient(to right,rgba(255,255,255,.9) 28%,rgba(255,255,255,.35) 55%,transparent 72%);
}
 .history-row{grid-template-columns:1fr;gap:2rem;padding:3.5rem 1.5rem}
 .history-row--reverse .history-row__image{order:-1}
 .history-row__brand-origin{grid-template-columns:1fr}
 .brand__images{gap:.75rem}
 .page-fv__inner{flex-direction:column;padding:1.25rem 2rem 3rem;gap:2rem;text-align:center}
 .page-breadcrumb{padding:calc(var(--header-h) + .75rem) 2rem 0;justify-content:center}
 .page-fv__desc{max-width:100%}
 .page-fv__image{width:min(300px,60vw)}
 .page-fv__image img{max-height:320px}
 .gallery-4{grid-template-columns:repeat(2,1fr)}
 .scene-grid{grid-template-columns:repeat(2,1fr);padding:0 1.5rem 2rem}
 .scene-grid--5{grid-template-columns:repeat(3,1fr)}
 .two-col{grid-template-columns:1fr;gap:2rem}
 .mechanism-grid{grid-template-columns:1fr}
 .brush-steps{grid-template-columns:1fr}
 .brush-point{padding:2.5rem 2rem}
 .how-to-grid{grid-template-columns:1fr;max-width:420px}
 .flavor-section{grid-template-columns:1fr}
 .flavor-item{min-height:340px}
 .flavor-item__person{width:45%}
 .faq-cat-nav{padding:.75rem 1.25rem}
}
@media (max-width:599px){
 .intro{padding:3rem 0 2rem}
 .intro::after{height:44px}
 .item-panel{height:clamp(280px,80vw,420px)}
 .item-panel--right::after,
 .item-panel--left::after{
 background:linear-gradient(
 to top,
 rgba(0,0,0,.52) 0%,
 rgba(0,0,0,.12) 55%,
 transparent 100%
 );
}
 .item-panel__content{
 position:absolute;bottom:0;left:0;right:0;
 max-width:100%;padding:1.75rem 1.25rem;
 text-align:left !important;margin:0 !important;
}
 .item-panel__title,
 .item-panel__lead{color:#fff}
 .item-panel__lead{opacity:.85}
 .item-panel--sp-right.item-panel--right::after{
 background:linear-gradient(
 to left,
 rgba(0,0,0,.58) 0%,
 rgba(0,0,0,.18) 55%,
 transparent 100%
 );
}
 .item-panel--sp-right .item-panel__content{
 left:auto !important;right:0 !important;
 max-width:68% !important;
 text-align:right !important;
}
 .history-row{padding:2.5rem 1rem;gap:1.5rem}
 .history-row__brand-origin{grid-template-columns:1fr}
 .history-row__image{max-width:100%;overflow:hidden}
 .history-row__image img{width:100%;height:auto;max-width:100%}
 .history-row__image--lg img{width:100%;height:auto;max-width:100%}
 .brand{padding:4rem .5rem}
 .brand__images{gap:.5rem}
 .brand__images img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
 img{max-width:100%;height:auto}
 .page-fv__inner{padding:.5rem 1.25rem 2rem}
 .page-breadcrumb{padding:calc(var(--header-h-sp) + .35rem) 1.25rem 0}
 .page-fv__catch{display:none}
 .page-fv__image{width:100% !important;max-width:100%}
 .page-fv__image img{max-height:none;width:100%}
 .page-fv__inner{flex-direction:column;text-align:center;gap:0}
 .page-fv__text{width:100%;order:1}
 .page-fv__image{order:2}
 .page-fv__price{order:3;text-align:left;margin-top:1rem}
 .point-section{padding:2rem 0}
 .point-section > .container{padding-left:1rem;padding-right:1rem}
 .point-badge{
 width:calc(100% + 2rem);
 margin-left:-1rem;
 margin-right:-1rem;
 padding-left:1rem;
 font-size:.875rem;
 letter-spacing:.2em;
}
 .product-info{padding:2rem 1rem}
 .brush-hero{padding:2rem 1rem}
 .brush-point{padding:1.5rem 1rem}
 .how-to-grid{grid-template-columns:1fr}
 .faq-page{padding:2.5rem 1rem 5rem}
 .faq-page-header{padding-top:calc(var(--header-h-sp) + 2.5rem)}
 .faq-cat-nav{top:var(--header-h-sp)}
 .faq-cat-nav ul{gap:.4rem .75rem}
 .scene-grid--5{grid-template-columns:repeat(2,1fr)}
 .page-top{bottom:1.25rem;right:1.25rem}
}
.item-panel__bg{
 transition:transform 1.1s var(--ease) !important;
}
.history-row__image img{
 transition:transform .9s var(--ease),filter .4s ease;
}
.history-row:hover .history-row__image img{
 transform:scale(1.025);
 filter:drop-shadow(0 16px 40px rgba(0,0,0,.18));
}
.intro-lead{
 animation:pulseBorder 3.5s ease-in-out infinite;
}
@keyframes pulseBorder{
 0%,100%{opacity:.0;transform:scale(1)}
 50%{opacity:1;transform:scale(1.04)}
}
.intro-divider{
 width:48px;height:1px;
 background:linear-gradient(to right,var(--brand),var(--accent));
 margin:2rem auto;
 border-radius:1px;
}
.btn--dark{
 background:var(--brand);
 position:relative;
 overflow:hidden;
}
.btn--dark::before{
 content:'';
 position:absolute;
 inset:0;
 background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.15) 50%,transparent 70%);
 transform:translateX(-100%);
 transition:transform .55s ease;
}
.btn--dark:hover::before{transform:translateX(100%)}
.intro-glow{
 position:absolute;
 right:-120px;bottom:60px;
 width:500px;height:500px;
 background:radial-gradient(ellipse,rgba(30,179,216,.06) 0%,transparent 68%);
 pointer-events:none;z-index:0;
}
.philosophy{
 background:#0a1628;
 padding:8rem 0;
 position:relative;
 z-index:1;
 overflow:hidden;
}
.philosophy::before{
 content:'';
 position:absolute;inset:0;
 background-image:
 repeating-linear-gradient(45deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 44px),
 repeating-linear-gradient(-45deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 44px);
 pointer-events:none;
}
.philosophy::after{
 content:'';
 position:absolute;
 bottom:-100px;right:-100px;
 width:600px;height:600px;
 background:radial-gradient(circle,rgba(0,71,138,.35) 0%,transparent 65%);
 pointer-events:none;
}
.philosophy__glow-left{
 position:absolute;
 top:-60px;left:-60px;
 width:480px;height:480px;
 background:radial-gradient(circle,rgba(30,179,216,.12) 0%,transparent 65%);
 pointer-events:none;
}
.philosophy__inner{
 position:relative;z-index:1;
 max-width:1100px;
 margin:0 auto;
 padding:0 3rem;
}
.philosophy__header{
 display:flex;
 align-items:center;
 gap:1.5rem;
 margin-bottom:5rem;
}
.philosophy__en{
 font-family:var(--font-en);
 font-size:clamp(1rem,2.5vw,1.375rem);
 font-weight:300;
 letter-spacing:.22em;
 color:rgba(255,255,255,.85);
}
.philosophy__sep{
 flex:1;
 height:1px;
 background:linear-gradient(to right,rgba(200,184,162,.4),transparent);
}
.philosophy__ja{
 font-family:var(--font-serif);
 font-size:.875rem;
 letter-spacing:.18em;
 color:rgba(200,184,162,.75);
}
.philosophy__block{
 padding:3.5rem 0;
 border-top:1px solid rgba(255,255,255,.07);
 display:grid;
 grid-template-columns:1fr 2fr;
 gap:4rem;
 align-items:start;
}
.philosophy__block:last-child{
 border-bottom:1px solid rgba(255,255,255,.07);
}
.philosophy__block--alt{
 grid-template-columns:1fr 2fr;
}
.philosophy__block-title{
 font-family:var(--font-serif);
 font-size:clamp(1.125rem,2.2vw,1.5rem);
 font-weight:700;
 line-height:1.55;
 color:#fff;
 letter-spacing:.03em;
 position:relative;
 padding-left:1.25rem;
}
.philosophy__block-title::before{
 content:'';
 position:absolute;
 left:0;top:.35em;
 width:3px;height:calc(100% - .35em);
 background:linear-gradient(to bottom,var(--accent),transparent);
 border-radius:2px;
}
.philosophy__block-body{
 color:rgba(255,255,255,.68);
 font-size:.9375rem;
 line-height:2.05;
}
.philosophy__block-body p{margin-bottom:1.25rem}
.philosophy__block-body p:last-child{margin-bottom:0}
.philosophy__block-body em{
 font-style:normal;
 color:rgba(200,184,162,.92);
 font-weight:500;
}
.philosophy__quote{
 font-family:var(--font-serif);
 font-size:clamp(1rem,1.8vw,1.1875rem);
 line-height:2;
 color:rgba(255,255,255,.82) !important;
 border-left:2px solid var(--accent);
 padding-left:1.5rem;
 margin-top:1.5rem;
 font-weight:600;
 letter-spacing:.03em;
}
.philosophy__pillars{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:1rem;
 margin-top:1.75rem;
 grid-column:1 / -1;
}
@media (min-width:960px){
 .philosophy__pillars{
 grid-column:auto;
}
 .philosophy__block--alt{
 display:block;
}
 .philosophy__block--alt .philosophy__block-title{
 max-width:360px;
 margin-bottom:1.5rem;
}
 .philosophy__block--alt .philosophy__block-body{max-width:680px}
 .philosophy__block--alt .philosophy__pillars{
 max-width:820px;
 grid-template-columns:repeat(3,1fr);
}
}
.philosophy__pillar{
 background:rgba(255,255,255,.04);
 border:1px solid rgba(255,255,255,.08);
 border-radius:var(--radius);
 padding:1.5rem 1.25rem;
 transition:background .3s ease,border-color .3s ease,transform .3s ease;
}
.philosophy__pillar:hover{
 background:rgba(30,179,216,.08);
 border-color:rgba(30,179,216,.25);
 transform:translateY(-3px);
}
.philosophy__pillar-num{
 display:block;
 font-family:var(--font-en);
 font-size:.75rem;
 font-weight:700;
 letter-spacing:.2em;
 color:var(--accent);
 margin-bottom:.75rem;
}
.philosophy__pillar p{
 font-size:.875rem;
 line-height:1.85;
 color:rgba(255,255,255,.62);
}
@media (max-width:960px){
 .philosophy{padding:5rem 0}
 .philosophy__inner{padding:0 1.5rem}
 .philosophy__header{margin-bottom:3rem}
 .philosophy__block{
 grid-template-columns:1fr;
 gap:1.75rem;
 padding:2.5rem 0;
}
 .philosophy__pillars{
 grid-template-columns:1fr;
 gap:.75rem;
 margin-top:1.25rem;
}
}
@media (max-width:599px){
 .philosophy{padding:4rem 0}
 .philosophy__inner{padding:0 1rem}
 .philosophy__header{flex-direction:column;align-items:flex-start;gap:.5rem}
 .philosophy__sep{display:none}
 .philosophy__block-title{font-size:1.0625rem}
 .philosophy__pillars{grid-template-columns:1fr}
 .history{overflow-x:hidden}
 .history-row{overflow:hidden}
 .history-row__text{min-width:0;word-break:break-all;overflow-wrap:break-word}
 .history-row__text p{font-size:.875rem}
 .history-row__brand-origin{grid-template-columns:1fr}
 .history-row__image--lg{max-width:100%}
 .items{overflow-x:hidden}
 .brand{overflow-x:hidden}
 .item-panel__content--right,
 .item-panel__content--left{
 margin-right:0 !important;
 margin-left:0 !important;
}
}
.brand-phil{
 position:relative;
 overflow:hidden;
 min-height:560px;
 background:var(--bg-off);
}
.brand-phil__label{
 position:relative;
 z-index:3;
 max-width:1200px;
 margin:0 auto;
 padding:2rem max(2rem,5vw) 5rem;
}
.brand-phil__bg{
 position:absolute;
 top:0;left:0;
 width:58%;height:100%;
 z-index:0;
}
.brand-phil__bg img{
 width:100%;height:100%;
 object-fit:cover;
 object-position:center top;
 display:block;
}
.brand-phil__bg::after{
 content:'';
 position:absolute;inset:0;
 background:linear-gradient(
 to right,
 rgba(253,252,250,0) 0%,
 rgba(253,252,250,.5) 60%,
 rgba(253,252,250,.97) 85%,
 rgba(253,252,250,1) 100%
 );
}
.brand-phil__overlay{
 position:relative;
 z-index:2;
 display:flex;
 justify-content:flex-end;
 align-items:center;
 min-height:480px;
 max-width:1200px;
 margin:0 auto;
 width:100%;
 padding:0 max(2rem,5vw);
}
.brand-phil__content{
 max-width:440px;
 width:100%;
}
.brand-phil__title{
 font-family:var(--font-serif);
 font-size:clamp(1.375rem,3vw,2rem);
 font-weight:700;
 color:var(--text);
 line-height:1.45;
 margin-bottom:1.25rem;
}
.brand-phil__text p,
.brand-phil__content p{
 font-size:.9375rem;
 line-height:2;
 color:var(--text-mid);
 margin-bottom:.75rem;
}
.brand-phil__content p:last-child{margin-bottom:0}
@media (max-width:960px){
 .brand-phil{min-height:auto}
 .brand-phil__bg{width:100%;height:300px;position:relative}
 .brand-phil__bg::after{
 background:linear-gradient(
 to bottom,
 rgba(253,252,250,0) 40%,
 rgba(253,252,250,1) 100%
 );
}
 .brand-phil__label{padding:2.5rem 1.25rem 1rem}
 .brand-phil__overlay{
 min-height:auto;
 justify-content:center;
 padding:1.5rem 1.25rem 3rem;
}
 .brand-phil__content{max-width:100%}
 .brand-phil__title{font-size:1.375rem}
 .brand-phil__content p{font-size:.875rem;line-height:1.9;word-break:break-word;overflow-wrap:break-word}
}
@media (max-width:960px){
 .brand-phil{min-height:460px}
 .brand-phil__inner{padding:4rem 5% 4rem 42%}
 .brand-phil__bg::after{
 background:linear-gradient(
 to left,
 rgba(253,252,250,.98) 25%,
 rgba(253,252,250,.8) 50%,
 rgba(253,252,250,.1) 75%
 );
}
}
@media (max-width:599px){
 .brand-phil{min-height:auto}
 .brand-phil__bg{position:relative;height:260px}
 .brand-phil__bg::after{
 background:linear-gradient(to bottom,
 rgba(253,252,250,0) 50%,
 rgba(253,252,250,1) 100%
 );
}
 .brand-phil__inner{
 position:relative;
 padding:0 1.25rem 3rem;
 justify-content:center;
 flex-direction:column;
}
 .brand-phil,.brand-phil__inner{flex-direction:column}
 .brand-phil__title{font-size:1.375rem}
 .brand-phil__text p{font-size:.875rem;line-height:1.9}
}
.flavor-section-header{
 max-width:1200px;margin:0 auto;
 padding:4rem 2rem 1.5rem;
 display:flex;align-items:center;gap:1.5rem;
}
.flavor-section-header::after{
 content:'';
 flex:1;height:1px;
 background:linear-gradient(to right,var(--border),transparent);
}
.flavor-section-title{
 font-family:var(--font-en);
 font-size:clamp(2rem,5vw,3rem);
 font-weight:300;letter-spacing:.2em;
 color:var(--text);
 white-space:nowrap;
}
.gallery-stylish{
 display:grid;
 grid-template-columns:2fr 1fr 1fr;
 grid-template-rows:repeat(2,220px);
 gap:.5rem;
 max-width:1200px;
 margin:0 auto;
 overflow:hidden;
}
.gallery-stylish__item{
 position:relative;
 overflow:hidden;
}
.gallery-stylish__item:first-child{
 grid-row:1 / 3;
}
.gallery-stylish__item img{
 width:100%;
 height:100%;
 object-fit:cover;
 display:block;
 transition:transform .9s var(--ease);
}
.gallery-stylish__item:hover img{transform:scale(1.06)}
.gallery-stylish__item::after{
 content:'';
 position:absolute;inset:0;
 background:linear-gradient(to top,rgba(0,40,80,.18) 0%,transparent 60%);
 pointer-events:none;
}
@media (max-width:960px){
 .gallery-stylish{
 grid-template-columns:1fr 1fr;
 grid-template-rows:auto;
}
 .gallery-stylish__item:first-child{grid-row:auto}
 .gallery-stylish__item{height:200px}
}
@media (max-width:599px){
 .gallery-stylish{grid-template-columns:1fr 1fr;gap:.25rem}
 .gallery-stylish__item{height:160px}
}
.fv-maincopy{margin-bottom:1.25rem}
.fv-maincopy__img{
 width:100%;
 max-width:560px;
 height:auto;
 display:block;
 filter:drop-shadow(0 4px 16px rgba(0,0,0,.2));
}
.page-fv__image--orp{width:min(460px,44vw)}
.section-title-pi{
 font-family:var(--font-en);
 font-size:clamp(1.75rem,4vw,2.75rem);
 font-weight:300;
 letter-spacing:.12em;
 color:var(--text);
 margin-bottom:.75rem;
 padding-bottom:1rem;
 border-bottom:1px solid var(--border);
}
.section-title-pi__sub{
 font-family:var(--font-serif);
 font-size:clamp(1rem,2.5vw,1.375rem);
 font-weight:700;
 color:var(--text);
 margin-top:.25rem;
 margin-bottom:2rem;
 letter-spacing:.02em;
}
.tb-features-photo{
 width:100%;
 border-radius:var(--radius-lg);
 overflow:hidden;
 box-shadow:var(--shadow-md);
}
.tb-features-photo img{
 width:100%;
 height:auto;
 display:block;
 aspect-ratio:4/5;
 object-fit:cover;
}
.bp-section--bg{
 background-image:url('./img/tb-tsukaikata.webp');
 background-repeat:no-repeat;
 background-position:right bottom;
 background-size:280px auto;
}
@media (max-width:960px){
 .bp-section--bg{background-size:180px auto}
}
@media (max-width:599px){
 .bp-section--bg{
 background-position:center bottom;
 background-size:140px auto;
 padding-bottom:9rem;
}
}
@media (max-width:960px){
 .fv-maincopy__img{max-width:420px}
 .page-fv__image--orp{width:min(300px,55vw)}
}
@media (max-width:599px){
 .page-fv__inner--orp{
 flex-direction:column;
 align-items:center;
 text-align:center;
 padding:calc(var(--header-h-sp) + .5rem) 1.25rem 2rem;
 gap:0;
}
 .page-fv__inner--orp .page-fv__text{
 display:contents;
}
 .page-fv__inner--orp .fv-maincopy{
 order:1;
 width:100%;
 margin-bottom:.75rem;
}
 .fv-maincopy__img{max-width:100%}
 .page-fv__inner--orp .page-fv__image--orp{
 order:2;
 width:100%;
 max-width:100%;
 margin:.5rem 0 1rem;
}
 .page-fv__inner--orp .page-fv__image--orp img{
 width:100%;
 max-height:none;
 height:auto;
}
 .page-fv__inner--orp .page-fv__desc{
 order:3;
 text-align:left;
 width:100%;
}
 .page-fv__inner--orp .page-fv__price{
 order:4;
 text-align:left;
 width:100%;
 margin-top:.75rem;
}
 .flavor-new{padding:3.5rem 1.25rem}
 .flavor-new__grid{grid-template-columns:1fr;gap:1.5rem}
 .flavor-new__card-body{padding:1.25rem}
 .flavor-new__card-product{width:64px}
}
html,body{max-width:100%;overflow-x:hidden}
@media (max-width:768px){
 .container,.container--narrow{padding-left:1.25rem;padding-right:1.25rem}
 .point-img,.gallery-4,.two-col,.scene-grid{max-width:100%;overflow:hidden}
 main img{max-width:100%;height:auto}
 table{width:100%}
 .alert-box{max-width:100%;box-sizing:border-box}
}
@media (max-width:599px){
 .page-fv__text{width:100%}
 .product-info__inner{padding:0}
 .point-section{overflow-x:hidden}
}
.self-check-wrap{max-width:700px;margin:2.25rem auto}
.self-check{
 background:linear-gradient(135deg,#fdf8f4 0%,#f9f0ec 100%);
 border:1px solid rgba(180,100,100,.15);
 border-radius:var(--radius-lg);
 padding:2rem 2rem 1.5rem;
 position:relative;
 overflow:visible;
}
.self-check__badge{
 position:absolute;
 top:-1rem;left:1.5rem;
 background:#b07070;
 color:#fff;
 font-size:.75rem;
 font-weight:700;
 letter-spacing:.06em;
 padding:.35em 1em;
 border-radius:999px;
 white-space:nowrap;
 box-shadow:0 2px 8px rgba(180,100,100,.3);
}
.self-check__header{
 text-align:center;
 margin-bottom:1.5rem;
 padding-bottom:1rem;
 border-bottom:1px solid rgba(180,100,100,.12);
 padding-top:.75rem;
}
.self-check__en{
 font-family:var(--font-en);
 
 font-size:.8125rem;
 color:#b07070;
 letter-spacing:.1em;
 margin-bottom:.25rem;
}
.self-check__title{
 font-family:var(--font-serif);
 font-size:1.25rem;
 font-weight:700;
 color:var(--text);
 letter-spacing:.04em;
}
.self-check__grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:.5rem 2rem;
 margin-bottom:1.25rem;
}
.self-check__grid li label{
 display:flex;
 align-items:flex-start;
 gap:.65rem;
 cursor:pointer;
 padding:.5rem .65rem;
 border-radius:var(--radius);
 background:rgba(255,255,255,.7);
 border:1px solid rgba(255,255,255,.9);
 font-size:.875rem;
 line-height:1.6;
 color:var(--text);
 transition:background .2s;
}
.self-check__grid li label:hover{background:rgba(255,255,255,.95)}
.self-check__grid input[type="checkbox"]{
 appearance:none;-webkit-appearance:none;
 width:17px;height:17px;flex-shrink:0;
 border:2px solid rgba(180,100,100,.35);
 border-radius:4px;
 margin-top:.15em;
 background:#fff;
 cursor:pointer;
 transition:background .2s,border-color .2s;
 position:relative;
}
.self-check__grid input[type="checkbox"]:checked{
 background:#b07070;border-color:#b07070;
}
.self-check__grid input[type="checkbox"]:checked::after{
 content:'';
 position:absolute;top:2px;left:5px;
 width:5px;height:9px;
 border:2px solid #fff;
 border-top:none;border-left:none;
 transform:rotate(45deg);
}
.self-check__result{
 display:flex;
 align-items:center;
 gap:.75rem;
 background:rgba(176,112,112,.1);
 border-radius:var(--radius);
 padding:.85rem 1.1rem;
 font-size:.875rem;
 font-weight:700;
 color:#b07070;
 line-height:1.5;
}
.self-check__result-icon{
 width:22px;height:22px;flex-shrink:0;
 background:#b07070;
 color:#fff;
 border-radius:50%;
 display:flex;align-items:center;justify-content:center;
 font-size:.75rem;font-weight:900;
}
@media (max-width:599px){
 .self-check{padding:1.5rem 1.25rem 1.25rem}
 .self-check__grid{grid-template-columns:1fr;gap:.4rem}
 .self-check__title{font-size:1.0625rem}
 .self-check__grid li label{font-size:.8125rem;word-break:break-word;overflow-wrap:break-word}
 .self-check-wrap{max-width:100%}
}
.product-hero{
 max-width:1200px;
 margin:0 auto;
 padding:0 2rem;
 margin-bottom:-1rem;
}
.product-hero__grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:1rem;
 border-radius:var(--radius-lg);
 overflow:hidden;
}
.product-hero__grid img{
 width:100%;
 aspect-ratio:4/3;
 object-fit:cover;
 display:block;
}
.product-hero__single img{
 width:100%;
 aspect-ratio:21/9;
 object-fit:cover;
 border-radius:var(--radius-lg);
 display:block;
}
@media (max-width:599px){
 .product-hero{padding:0 1.25rem}
 .product-hero__grid{grid-template-columns:1fr}
 .product-hero__grid img{aspect-ratio:3/2}
 .product-hero__single img{aspect-ratio:3/2}
}
.moisture-layout{
 display:grid;
 grid-template-columns:1fr auto;
 gap:2.5rem;
 align-items:start;
 margin-top:1.5rem;
}
.moisture-layout img{
 max-width:380px;
 width:100%;
 border-radius:var(--radius);
 display:block;
}
@media (max-width:599px){
 .moisture-layout{
 display:block;
}
 .moisture-layout img{
 max-width:100%;
 margin-top:1.25rem;
}
}
.sencheck-cases{
 display:flex;
 flex-direction:column;
 gap:0;
 background:var(--bg-off);
 border-radius:var(--radius-lg);
 padding:1.5rem;
}
.sencheck-case{
 display:flex;
 align-items:flex-start;
 gap:2rem;
 padding-bottom:1.5rem;
 margin-bottom:1.5rem;
 border-bottom:1px solid var(--border);
}
.sencheck-case:last-child{
 border-bottom:none;
 padding-bottom:0;
 margin-bottom:0;
}
.sencheck-case--wide .sencheck-case__img{
 flex:0 0 320px;
}
.sencheck-case--double .sencheck-case__imgs{
 flex:0 0 300px;
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:.5rem;
}
.sencheck-case__img img,
.sencheck-case__imgs img{
 width:100%;height:auto;
 border-radius:var(--radius);
 display:block;
}
.sencheck-case__text{
 flex:1;
 min-width:0;
}
.sencheck-case__text p{
 font-size:.875rem;
 line-height:1.85;
 color:var(--text-mid);
 margin-bottom:.5rem;
}
.sencheck-case__caption{
 font-size:.75rem !important;
 color:var(--text-light) !important;
 margin-top:.75rem !important;
}
@media (max-width:768px){
 .sencheck-case{
 flex-direction:column;
}
 .sencheck-case--wide .sencheck-case__img,
 .sencheck-case--double .sencheck-case__imgs{
 flex:none;
 width:100%;
}
}
.page-fv__image--full{width:min(460px,44vw)}
@media (max-width:599px){
 .page-fv__image--full{
 width:100% !important;
 max-width:100%;
}
 .page-fv__image--full img{width:100%;max-height:none}
}
@media (max-width:599px){
 *{max-width:100%;box-sizing:border-box}
 p,h1,h2,h3,h4,h5,span,li,a,small{
 word-break:break-word;
 overflow-wrap:break-word;
}
 .point-body,.point-note,.info-block__body p,
 .recommend__list li,.alert-box p,.page-fv__desc,
 .page-fv__price,.page-fv__catch{
 word-break:break-word;
 overflow-wrap:break-word;
 hyphens:auto;
}
 html,body{overflow-x:hidden;max-width:100vw}
 section,div{max-width:100%}
 img{max-width:100% !important;height:auto}
}
@media (max-width:599px){
 .page-fv__inner--product{
 flex-direction:column !important;
 text-align:center;
 padding:calc(var(--header-h) + 1rem) 1.25rem 2rem;
 gap:0;
 align-items:center;
}
 .page-fv__inner--product .page-fv__text{
 display:contents;
}
 .page-fv__inner--product .page-fv__catch{order:1;display:block}
 .page-fv__inner--product .page-fv__title{order:2;display:block}
 .page-fv__inner--product .page-fv__desc{order:3;display:block;text-align:left}
 .page-fv__inner--product .page-fv__image{order:4;width:100% !important}
 .page-fv__inner--product .page-fv__image img{width:100%;max-height:none}
 .page-fv__inner--product .page-fv__price{order:5;display:block;text-align:left;margin-top:.75rem}
}
.flavor-ref{background:var(--bg);overflow:hidden}
.flavor-ref__item{
 position:relative;
 min-height:300px;
 overflow:hidden;
}
.flavor-ref__img{
 position:absolute;inset:0;
}
.flavor-ref__img img{
 width:100%;height:100%;
 object-fit:cover;display:block;
 transition:transform .9s var(--ease);
}
.flavor-ref__item:hover .flavor-ref__img img{transform:scale(1.04)}
.flavor-ref__body{
 position:relative;
 z-index:2;
 display:inline-flex;
 flex-direction:column;
 justify-content:center;
 max-width:280px;
 padding:2rem 1.75rem 2.5rem;
 min-height:220px;
}
.flavor-ref__item--marine .flavor-ref__body{
 margin-left:auto;
 background:rgba(197,232,248,.92);
 backdrop-filter:blur(4px);
}
.flavor-ref__item--grape .flavor-ref__body{
 margin-right:auto;
 background:rgba(253,235,150,.92);
 backdrop-filter:blur(4px);
}
.flavor-ref__tube{
 position:absolute;
 width:clamp(56px,8vw,88px);
 filter:drop-shadow(0 6px 12px rgba(0,0,0,.2));
 bottom:1rem;
}
.flavor-ref__item--marine .flavor-ref__tube{left:50%;transform:translateX(-140%)}
.flavor-ref__item--grape .flavor-ref__tube{right:50%;transform:translateX(140%)}
.flavor-ref__en{
 font-family:var(--font-en);
 
 font-size:.7rem;
 letter-spacing:.12em;
 color:rgba(0,0,0,.4);
 margin-bottom:.3rem;
}
.flavor-ref__name{
 font-family:var(--font-serif);
 font-size:clamp(.975rem,2vw,1.25rem);
 font-weight:700;
 color:var(--text);
 margin-bottom:.4rem;
 line-height:1.3;
}
.flavor-ref__copy{
 font-size:.75rem;
 color:var(--text-mid);
 line-height:1.8;
 margin-bottom:.65rem;
}
.flavor-ref__tag{
 display:inline-block;
 font-size:.65rem;font-weight:700;color:#fff;
 padding:.25em .8em;border-radius:999px;width:fit-content;
}
.flavor-ref__tag--blue{background:#0074b7}
.flavor-ref__tag--yellow{background:#b08800}
@media (max-width:599px){
 .flavor-ref__item{min-height:220px}
 .flavor-ref__body{max-width:65%;min-height:160px;padding:1.25rem 1.1rem 2rem}
 .flavor-ref__name{font-size:.9rem}
 .flavor-ref__copy{font-size:.7rem}
 .flavor-ref__tube{width:50px}
 .flavor-ref__item--marine .flavor-ref__tube{transform:translateX(-110%)}
 .flavor-ref__item--grape .flavor-ref__tube{transform:translateX(110%)}
}
.tooth-photo-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:1rem;
 margin-top:1rem;
}
.tooth-photo-grid img{
 width:100%;
 height:auto;
 display:block;
 border-radius:var(--radius);
}
@media (max-width:599px){
 .tooth-photo-grid{grid-template-columns:1fr}
}
.flavor-section-wrap{background:var(--bg)}
.flavor-section-title-row{
 text-align:center;
 padding:4rem 2rem 2rem;
}
.flavor-section-title-row .section-en{
 font-family:var(--font-en);
 font-size:clamp(2rem,5vw,3rem);
 font-weight:300;
 letter-spacing:.2em;
 color:var(--text);
 display:block;
 border-bottom:1px solid var(--border);
 padding-bottom:1rem;
 max-width:1200px;
 margin:0 auto;
 text-align:left;
 padding-left:max(2rem,5vw);
 padding-right:max(2rem,5vw);
}
.point-section--accent{
 background:linear-gradient(135deg,#e8f3fb 0%,#dff0f8 100%);
}
.tb-features-layout{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:3rem;
 align-items:start;
 margin-top:2.5rem;
 max-width:980px;
 margin-left:auto;
 margin-right:auto;
}
.tb-features-photo-box img{
 width:100%;
 height:auto;
 display:block;
}
.tb-features-list{display:flex;flex-direction:column;gap:1.5rem}
.tb-feature-item{
 display:flex;
 gap:1rem;
 align-items:flex-start;
 padding:1.25rem;
 background:var(--bg-off);
 border:1px solid var(--border);
 border-radius:var(--radius);
}
.tb-feature-item__num{
 font-family:var(--font-en);
 font-size:1.375rem;
 font-weight:300;
 color:var(--brand);
 letter-spacing:.08em;
 flex-shrink:0;
 width:30px;
 line-height:1;
 padding-top:.2rem;
}
.tb-feature-item__body h3{
 font-family:var(--font-serif);
 font-size:.9375rem;
 font-weight:700;
 color:var(--text);
 margin-bottom:.35rem;
 line-height:1.4;
}
.tb-feature-item__body small{
 display:block;
 font-size:.75rem;
 color:var(--brand);
 margin-bottom:.4rem;
}
.tb-feature-item__body p{font-size:.8125rem;line-height:1.8;color:var(--text-mid)}
@media (max-width:768px){
 .tb-features-layout{grid-template-columns:1fr;gap:2rem}
}
.bp-card__illus img{
 width:110px;
 height:auto;
 display:block;
 flex-shrink:0;
}
.text-img-right{
 display:grid;
 grid-template-columns:1fr auto;
 gap:2rem;
 align-items:start;
}
.text-img-right img{
 max-width:380px;
 width:100%;
 flex-shrink:0;
}
@media (max-width:768px){
 .text-img-right{display:block}
 .text-img-right img{max-width:100%;margin-top:1.25rem}
}
.bp-card__illus{
 flex-shrink:0;
 width:110px;
 height:100px;
 display:flex;
 align-items:center;
 justify-content:center;
}
.bp-card__illus img{
 width:110px;
 height:100px;
 object-fit:contain;
 display:block;
}
.img-fullwidth{
 display:block;
 width:100%;
 max-width:100%;
 margin:0;
 padding:0;
}
.img-fullwidth img{
 width:100%;
 display:block;
 margin:0;
 padding:0;
}
.point-subsection--accent{
 background:linear-gradient(135deg,#f0f9e8 0%,#e8f5e0 100%);
 border-radius:var(--radius-lg);
 padding:2rem;
 margin-top:2rem;
}
.point-subsection--accent .point-subtitle{
 margin-top:0 !important;
}
.bp-header__title-row{
 display:flex;
 align-items:center;
 gap:1.25rem;
 margin-bottom:.75rem;
}
.bp-header__title-row .section-title-pi__sub{
 margin-bottom:0;
}
.bp-header__title-img{
 height:60px;
 width:auto;
 flex-shrink:0;
 object-fit:contain;
}
@media (max-width:599px){
 .bp-header__title-row{flex-direction:column;align-items:flex-start;gap:.5rem}
 .bp-header__title-img{height:48px}
}
.brightening-banner{
 position:relative;
 width:100%;
 padding:5rem 2rem;
 overflow:hidden;
 text-align:center;
 display:flex;
 align-items:center;
 justify-content:center;
 background:
 linear-gradient(160deg,
 #00244d 0%,
 #003368 35%,
 #00478a 65%,
 #003368 100%
 );
}
.brightening-banner::before{
 content:'';
 position:absolute;inset:0;
 background:
 repeating-linear-gradient(
 -55deg,
 transparent 0px,
 transparent 60px,
 rgba(255,255,255,.03) 60px,
 rgba(255,255,255,.03) 61px
 );
 pointer-events:none;
}
.brightening-banner::after{
 content:'';
 position:absolute;
 top:50%;left:50%;
 transform:translate(-50%,-50%);
 width:65%;height:120%;
 background:radial-gradient(ellipse at center,
 rgba(200,184,162,.2) 0%,
 rgba(30,179,216,.1) 45%,
 transparent 70%
 );
 pointer-events:none;
}
.brightening-banner__bokeh{
 position:absolute;inset:0;
 pointer-events:none;
 overflow:hidden;
}
.brightening-banner__bokeh span{
 position:absolute;
 border-radius:50%;
}
.brightening-banner__bokeh span:nth-child(1){
 width:3px;height:3px;
 background:rgba(200,230,255,.95);
 top:25%;left:12%;
 box-shadow:0 0 8px 3px rgba(150,210,255,.6);
 animation:starTwinkle 3.2s ease-in-out infinite;
}
.brightening-banner__bokeh span:nth-child(2){
 width:2px;height:2px;
 background:rgba(255,255,255,.95);
 top:40%;left:30%;
 box-shadow:0 0 6px 2px rgba(255,255,255,.5);
 animation:starTwinkle 2.5s ease-in-out infinite 0.7s;
}
.brightening-banner__bokeh span:nth-child(3){
 width:4px;height:4px;
 background:rgba(190,235,255,.9);
 top:20%;right:20%;
 box-shadow:0 0 10px 4px rgba(30,179,216,.4);
 animation:starTwinkle 4s ease-in-out infinite 1.2s;
}
.brightening-banner__bokeh span:nth-child(4){
 width:2px;height:2px;
 background:rgba(220,240,255,.9);
 bottom:30%;left:55%;
 box-shadow:0 0 6px 2px rgba(100,200,255,.4);
 animation:starTwinkle 2.8s ease-in-out infinite 0.3s;
}
.brightening-banner__bokeh span:nth-child(5){
 width:3px;height:3px;
 background:rgba(255,255,255,.8);
 top:60%;right:15%;
 box-shadow:0 0 8px 3px rgba(255,255,255,.4);
 animation:starTwinkle 3.5s ease-in-out infinite 1.8s;
}
.brightening-banner__bokeh span:nth-child(6){
 width:2px;height:2px;
 background:rgba(200,230,255,.9);
 top:70%;left:20%;
 box-shadow:0 0 6px 2px rgba(100,190,255,.5);
 animation:starTwinkle 2.2s ease-in-out infinite 0.9s;
}
@keyframes starTwinkle{
 0%,100%{opacity:0;transform:scale(.6)}
 50%{opacity:1;transform:scale(1.4)}
}
/* starTwinkle は opacity+transform のみ → GPU合成済み。will-change で事前にレイヤー確保 */
.brightening-banner__bokeh span{will-change:opacity,transform}
.brightening-banner__text{
 position:relative;z-index:1;
 font-family:var(--font-serif);
 font-size:clamp(1.5rem,4vw,2.75rem);
 font-weight:400;
 letter-spacing:.14em;
 line-height:1.7;
 background:linear-gradient(
 160deg,
 #c8b8a2 0%,
 #e8ddd0 25%,
 #ffffff 50%,
 #e0d4c4 75%,
 #c8b8a2 100%
 );
 -webkit-background-clip:text;
 -webkit-text-fill-color:transparent;
 background-clip:text;
 filter:drop-shadow(0 2px 16px rgba(30,179,216,.25));
}
@media (max-width:599px){
 .brightening-banner{padding:3.5rem 1.5rem}
}
.faq-item summary{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:1rem;
 padding:1.2rem 0;
 cursor:pointer;
 list-style:none;
}
.faq-item summary::-webkit-details-marker{
 display:none;
}
.faq-item__q{
 flex:1;
 font-size:1rem;
 line-height:1.6;
 word-break:break-word;
 padding-right:1rem;
}
.faq-item summary::after{
 content:'+';
 font-size:1.6rem;
 font-weight:700;
 color:var(--brand);
 flex-shrink:0;
 width:24px;
 text-align:right;
}
.faq-item[open] summary::after{
 content:'−';
}
@media screen and (max-width:768px){
 .faq-item summary{
 padding:1rem 0;
}
 .faq-item__q{
 font-size:.95rem;
 padding-right:.5rem;
}
 .faq-item summary::after{
 font-size:1.4rem;
 width:22px;
}
}
/* ── アクセシビリティ: アニメーション軽減設定 ── */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .hero-video { display: none; }
}