@charset "UTF-8";
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;color:#1a1a1a;background:#faf8f4;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:#1a1a1a;text-decoration:none}
a:hover{opacity:.75}
img{max-width:100%;height:auto;display:block}
button{cursor:pointer}

:root{
  --grn:#1e3a2a;
  --grn2:#2d5a3d;
  --cream:#faf8f4;
  --cream2:#f2ede4;
  --terra:#c27a5a;
  --sakura:#f0cdd8;
  --dark:#1a1a1a;
  --mid:#5a5a5a;
  --lite:#e8e0d4;
  --gold:#b8963e;
  --fnt-jp:'Shippori Mincho',serif;
  --fnt-body:'Noto Sans JP',sans-serif;
  --fnt-latin:'Cormorant Garamond',serif;
}

#topAnnounce{background:var(--grn);color:#fff;text-align:center;padding:9px 20px;font-size:12px;letter-spacing:.6px;font-weight:500;position:relative;z-index:200}
.ann_inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:8px}

#siteNav{background:#fff;position:sticky;top:0;z-index:500;border-bottom:1px solid var(--lite);box-shadow:0 2px 12px rgba(0,0,0,.05)}
.nav_wrap{max-width:1240px;margin:0 auto;padding:0 30px;display:flex;align-items:center;justify-content:space-between;height:68px}
.nav_logo{display:flex;align-items:center;gap:10px}
.nav_logo_mark{width:38px;height:38px;background:var(--grn);display:flex;align-items:center;justify-content:center;position:relative}
.nav_logo_mark::after{content:"桜";color:#f0cdd8;font-family:var(--fnt-jp);font-size:18px;font-weight:700;position:absolute}
.nav_logo_txt{font-family:var(--fnt-jp);font-size:18px;font-weight:700;color:var(--grn);letter-spacing:.5px;line-height:1.15}
.nav_logo_sub{font-family:var(--fnt-body);font-size:9px;color:#aaa;letter-spacing:2.5px;text-transform:uppercase;font-weight:400}
.nav_links{display:flex;align-items:center;gap:28px}
.nav_links a{font-family:var(--fnt-body);font-size:12px;font-weight:500;letter-spacing:.8px;color:var(--dark);white-space:nowrap;transition:color .2s}
.nav_links a:hover{color:var(--grn);opacity:1}
.nav_right{display:flex;align-items:center;gap:14px}
.nav_cart_btn{position:relative;width:40px;height:40px;background:transparent;border:1.5px solid var(--lite);display:flex;align-items:center;justify-content:center;transition:border-color .2s}
.nav_cart_btn:hover{border-color:var(--grn)}
.nav_cart_btn .bi{font-size:19px;color:var(--dark)}
.cart_cnt{position:absolute;top:-5px;right:-5px;background:var(--terra);color:#fff;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:700;display:none;align-items:center;justify-content:center}
.nav_cta_btn{background:var(--grn);color:#fff;border:none;padding:10px 22px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;transition:background .2s}
.nav_cta_btn:hover{background:var(--grn2)}

#mobNav{display:none;position:sticky;top:0;z-index:500;background:#fff;border-bottom:1px solid var(--lite)}
.mobNav_bar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px}
.mob_burger{background:none;border:none;display:flex;flex-direction:column;gap:5px}
.mob_burger span{display:block;width:22px;height:2px;background:var(--dark)}
.mob_logo_sm{font-family:var(--fnt-jp);font-size:16px;font-weight:700;color:var(--grn)}
.mob_cart_wrap{position:relative}
.mob_cart_wrap .bi{font-size:22px;color:var(--dark)}
.mob_cart_wrap .cart_cnt{top:-4px;right:-6px}
.mobNav_panel{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9000;display:none}
.mobNav_panel.open{display:block}
.mobNav_drawer{position:absolute;left:0;top:0;bottom:0;width:280px;background:#fff;padding:52px 30px 30px;display:flex;flex-direction:column;gap:20px}
.mobNav_drawer a{font-family:var(--fnt-body);font-size:14px;font-weight:500;letter-spacing:1px;color:var(--dark)}
.mobNav_x{position:absolute;top:16px;right:18px;font-size:26px;background:none;border:none;color:var(--dark)}

#heroMain{position:relative;background:var(--grn);overflow:hidden;min-height:640px;display:flex}
.hero_bg{position:absolute;inset:0;background:linear-gradient(135deg,rgba(20,46,30,.92) 0%,rgba(30,58,42,.7) 60%,rgba(30,58,42,.3) 100%);z-index:1}
.hero_bg_img{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;z-index:0;opacity:.45}
.hero_inner{max-width:1240px;margin:0 auto;padding:80px 30px 60px;display:flex;align-items:center;gap:60px;position:relative;z-index:2;width:100%}
.hero_copy{flex:1;min-width:0}
.hero_eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(240,205,216,.15);border:1px solid rgba(240,205,216,.3);padding:6px 14px;margin-bottom:24px}
.hero_eyebrow span{font-family:var(--fnt-body);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--sakura);font-weight:500}
.hero_h1{font-family:var(--fnt-jp);font-size:56px;font-weight:700;color:#fff;line-height:1.2;margin-bottom:8px;letter-spacing:-1px}
.hero_h1_en{font-family:var(--fnt-latin);font-size:22px;font-style:italic;color:rgba(255,255,255,.5);margin-bottom:22px;letter-spacing:1px}
.hero_txt{font-family:var(--fnt-body);font-size:14px;color:rgba(255,255,255,.75);line-height:1.9;max-width:460px;font-weight:300;margin-bottom:32px}
.hero_stats{display:flex;gap:28px;margin-bottom:36px}
.hero_stat_num{font-family:var(--fnt-jp);font-size:24px;font-weight:700;color:#fff;line-height:1}
.hero_stat_lbl{font-family:var(--fnt-body);font-size:10px;color:rgba(255,255,255,.5);letter-spacing:1px;margin-top:3px;font-weight:400}
.hero_btns{display:flex;gap:12px;flex-wrap:wrap}
.hbtn_main{background:var(--terra);color:#fff;border:none;padding:14px 32px;font-family:var(--fnt-body);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.hbtn_main:hover{background:#d48a6a}
.hbtn_ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4);padding:14px 28px;font-family:var(--fnt-body);font-size:12px;font-weight:500;letter-spacing:1px;transition:border-color .2s}
.hbtn_ghost:hover{border-color:#fff}
.hero_formCard{width:360px;flex-shrink:0;background:#fff;padding:32px 28px;position:relative}
.hero_formCard::before{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;background:var(--sakura);z-index:-1;opacity:.3}
.hfc_title{font-family:var(--fnt-jp);font-size:18px;font-weight:700;color:var(--grn);margin-bottom:4px;letter-spacing:.5px}
.hfc_sub{font-family:var(--fnt-body);font-size:11px;color:#888;margin-bottom:22px;letter-spacing:.5px;font-weight:400}
.hfc_field{margin-bottom:12px}
.hfc_field input,.hfc_field textarea{width:100%;border:1px solid var(--lite);padding:10px 12px;font-family:var(--fnt-body);font-size:13px;color:var(--dark);background:var(--cream);outline:none;transition:border-color .15s;font-weight:400}
.hfc_field input:focus,.hfc_field textarea:focus{border-color:var(--grn)}
.hfc_field textarea{resize:vertical;min-height:80px}
.hfc_submit{width:100%;background:var(--grn);color:#fff;border:none;padding:13px;font-family:var(--fnt-body);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;transition:background .2s;margin-top:6px}
.hfc_submit:hover{background:var(--grn2)}
.hfc_note{font-size:10px;color:#aaa;text-align:center;margin-top:10px;font-family:var(--fnt-body);letter-spacing:.3px;font-weight:400}

#numbersStrip{background:var(--grn);padding:0}
.nums_inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}
.nums_cell{padding:32px 24px;text-align:center;border-right:1px solid rgba(255,255,255,.1)}
.nums_cell:last-child{border-right:none}
.nums_val{font-family:var(--fnt-jp);font-size:42px;font-weight:700;color:#fff;line-height:1;letter-spacing:-1px}
.nums_unit{font-family:var(--fnt-body);font-size:13px;color:rgba(255,255,255,.6);font-weight:400;margin-left:2px}
.nums_desc{font-family:var(--fnt-body);font-size:11px;color:rgba(255,255,255,.5);margin-top:6px;letter-spacing:.8px;font-weight:400}

#catalogMain{max-width:1240px;margin:0 auto;padding:73px 30px 18px}
.cat_header{text-align:center;margin-bottom:38px}
.sec_eyebrow{font-family:var(--fnt-body);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--terra);font-weight:700;margin-bottom:10px}
.sec_h2{font-family:var(--fnt-jp);font-size:34px;font-weight:700;color:var(--dark);letter-spacing:.5px;line-height:1.25}
.sec_h2_en{font-family:var(--fnt-latin);font-size:14px;font-style:italic;color:#bbb;margin-top:4px;letter-spacing:1px}
.sec_txt{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.85;font-weight:300;max-width:560px;margin:14px auto 0}

.catFilter_row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:34px}
.cf_btn{background:transparent;border:1.5px solid var(--lite);padding:8px 20px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid);transition:all .15s}
.cf_btn:hover{border-color:var(--grn);color:var(--grn)}
.cf_btn.active{background:var(--grn);border-color:var(--grn);color:#fff}

.prod_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-bottom:40px}
.prod_card{position:relative;background:#fff;border:1px solid var(--lite);overflow:hidden;transition:box-shadow .25s;cursor:pointer}
.prod_card:hover{box-shadow:0 8px 32px rgba(0,0,0,.09)}
.prod_card_img_wrap{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--cream2)}
.prod_card_img_wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.prod_card:hover .prod_card_img_wrap img{transform:scale(1.04)}
.prod_card_hover_overlay{position:absolute;inset:0;background:rgba(30,58,42,.88);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;opacity:0;transition:opacity .3s}
.prod_card:hover .prod_card_hover_overlay{opacity:1}
.pcho_view{background:transparent;border:1.5px solid rgba(255,255,255,.7);color:#fff;padding:9px 22px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.pcho_view:hover{background:rgba(255,255,255,.15)}
.pcho_cart{background:var(--terra);border:none;color:#fff;padding:9px 22px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.pcho_cart:hover{background:#d48a6a}
.prod_badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--terra);color:#fff;font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px}
.prod_badge.badge_new{background:var(--grn)}
.prod_badge.badge_sale{background:#c0392b}
.prod_card_body{padding:18px 20px 22px}
.prod_card_name{font-family:var(--fnt-jp);font-size:15px;font-weight:700;color:var(--dark);margin-bottom:4px;letter-spacing:.3px}
.prod_card_specs{font-family:var(--fnt-body);font-size:10px;color:#aaa;font-weight:400;letter-spacing:.5px;margin-bottom:10px;line-height:1.6}
.prod_price_row{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.prod_price{font-family:var(--fnt-jp);font-size:20px;font-weight:700;color:var(--grn)}
.prod_price_unit{font-family:var(--fnt-body);font-size:10px;color:#aaa;font-weight:400}
.prod_old_price{font-family:var(--fnt-body);font-size:12px;color:#bbb;text-decoration:line-through;font-weight:400}
.prod_stock{font-family:var(--fnt-body);font-size:10px;color:var(--grn2);font-weight:500;letter-spacing:.5px}
.prod_stock.out{color:#c0392b}
.prod_card_cta_row{display:flex;gap:8px;margin-top:14px}
.pcc_cart_btn{flex:1;background:transparent;border:1.5px solid var(--grn);color:var(--grn);padding:9px 10px;font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:all .15s}
.pcc_cart_btn:hover{background:var(--grn);color:#fff}
.pcc_detail_btn{width:38px;border:1.5px solid var(--lite);background:transparent;display:flex;align-items:center;justify-content:center;color:var(--mid);transition:all .15s;font-size:15px}
.pcc_detail_btn:hover{border-color:var(--grn);color:var(--grn)}

.prod_modal_overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:8000;display:none;align-items:flex-start;justify-content:center;padding:30px 20px;overflow-y:auto}
.prod_modal_overlay.open{display:flex}
.prod_modal_box{background:#fff;max-width:820px;width:100%;margin:auto;position:relative;display:flex;overflow:hidden}
.prod_modal_close{position:absolute;top:14px;right:16px;font-size:22px;background:none;border:none;color:var(--dark);z-index:2;line-height:1}
.prod_modal_img_col{flex:1;background:var(--cream2);position:relative;min-height:340px}
.prod_modal_img_col img{width:100%;height:100%;object-fit:cover}
.prod_modal_info_col{flex:1;padding:36px 30px 30px;display:flex;flex-direction:column;overflow-y:auto;max-height:80vh}
.pm_badge{display:inline-block;background:var(--terra);color:#fff;font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:3px 10px;margin-bottom:12px}
.pm_name{font-family:var(--fnt-jp);font-size:22px;font-weight:700;color:var(--dark);margin-bottom:6px}
.pm_specs{font-family:var(--fnt-body);font-size:11px;color:#aaa;font-weight:400;margin-bottom:14px;line-height:1.65}
.pm_desc{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.85;font-weight:300;margin-bottom:16px}
.pm_stock{font-family:var(--fnt-body);font-size:11px;color:var(--grn2);font-weight:500;margin-bottom:16px}
.pm_price_row{display:flex;align-items:baseline;gap:10px;margin-bottom:20px}
.pm_price{font-family:var(--fnt-jp);font-size:28px;font-weight:700;color:var(--grn)}
.pm_old{font-family:var(--fnt-body);font-size:14px;color:#bbb;text-decoration:line-through}
.pm_qty_row{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.pm_qty_lbl{font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dark)}
.pm_qty_sel{border:1px solid var(--lite);padding:8px 10px;font-family:var(--fnt-body);font-size:13px;width:80px;background:var(--cream);outline:none}
.pm_add_btn{background:var(--grn);color:#fff;border:none;padding:13px 20px;font-family:var(--fnt-body);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;width:100%;margin-top:auto;transition:background .2s}
.pm_add_btn:hover{background:var(--grn2)}

#philosophyBlock{max-width:1240px;margin:0 auto;padding:83px 30px 70px}
.phil_inner{display:flex;gap:70px;align-items:center}
.phil_img_col{flex:1;position:relative}
.phil_img_main{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--cream2)}
.phil_img_deco{position:absolute;bottom:-20px;right:-20px;width:40%;aspect-ratio:1;background:var(--sakura);z-index:-1}
.phil_text_col{flex:1}
.phil_quote{font-family:var(--fnt-jp);font-size:28px;font-weight:600;color:var(--grn);line-height:1.5;margin-bottom:20px;letter-spacing:.5px;border-left:3px solid var(--sakura);padding-left:20px}
.phil_body{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.95;font-weight:300;margin-bottom:28px}
.phil_founder{display:flex;align-items:center;gap:14px}
.phil_founder_avatar{width:52px;height:52px;background:var(--grn);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fnt-jp);font-size:20px;color:#fff}
.phil_founder_name{font-family:var(--fnt-jp);font-size:14px;font-weight:700;color:var(--dark)}
.phil_founder_title{font-family:var(--fnt-body);font-size:10px;color:#aaa;letter-spacing:1px;text-transform:uppercase;font-weight:400}

#processBlock{background:var(--cream2);padding:77px 30px 65px}
.process_inner{max-width:1240px;margin:0 auto}
.process_header{text-align:center;margin-bottom:56px}
.process_steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.process_steps::before{content:"";position:absolute;top:32px;left:10%;right:10%;height:1px;background:var(--lite);z-index:0}
.proc_step{text-align:center;padding:0 10px;position:relative;z-index:1}
.proc_num_wrap{width:64px;height:64px;background:#fff;border:2px solid var(--lite);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;position:relative;transition:border-color .2s}
.proc_step:hover .proc_num_wrap{border-color:var(--grn)}
.proc_num{font-family:var(--fnt-jp);font-size:22px;font-weight:700;color:var(--grn)}
.proc_icon_txt{font-size:26px;margin-bottom:12px;color:var(--mid)}
.proc_title{font-family:var(--fnt-jp);font-size:13px;font-weight:700;color:var(--dark);margin-bottom:8px;letter-spacing:.5px}
.proc_txt{font-family:var(--fnt-body);font-size:11px;color:var(--mid);line-height:1.7;font-weight:300}

#showcaseFeature{position:relative;overflow:hidden;min-height:560px;display:flex;align-items:stretch}
.sf_bg{position:absolute;inset:0;background:var(--cream2)}
.sf_bg img{width:100%;height:100%;object-fit:cover;opacity:.25;position:absolute;inset:0}
.sf_inner{max-width:1240px;margin:0 auto;padding:80px 30px;display:flex;align-items:center;gap:60px;position:relative;z-index:1;width:100%}
.sf_img_wrap{flex:1.2;position:relative}
.sf_img_main{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--grn);box-shadow:24px 24px 0 var(--sakura)}
.sf_label{position:absolute;bottom:-16px;left:0;background:var(--grn);color:#fff;padding:10px 20px;font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase}
.sf_info_col{flex:1}
.sf_tag{font-family:var(--fnt-body);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--terra);font-weight:700;margin-bottom:12px}
.sf_h{font-family:var(--fnt-jp);font-size:30px;font-weight:700;color:var(--dark);line-height:1.3;margin-bottom:16px}
.sf_body{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.9;font-weight:300;margin-bottom:24px}
.sf_specs_list{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.sf_spec_row{display:flex;align-items:center;gap:8px;font-family:var(--fnt-body);font-size:12px;color:var(--mid);font-weight:400}
.sf_cta{background:var(--grn);color:#fff;border:none;padding:12px 28px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s;display:inline-block}
.sf_cta:hover{background:var(--grn2);opacity:1}

#materialsSection{max-width:1240px;margin:0 auto;padding:75px 30px 60px}
.mat_header{text-align:center;margin-bottom:50px}
.mat_grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.mat_card{background:var(--cream2);padding:28px 18px;text-align:center;border-bottom:3px solid transparent;transition:border-color .2s,box-shadow .2s}
.mat_card:hover{border-color:var(--grn);box-shadow:0 4px 20px rgba(0,0,0,.06)}
.mat_icon_wrap{font-size:30px;margin-bottom:14px;color:var(--grn)}
.mat_name{font-family:var(--fnt-jp);font-size:13px;font-weight:700;color:var(--dark);margin-bottom:6px}
.mat_desc{font-family:var(--fnt-body);font-size:11px;color:var(--mid);line-height:1.65;font-weight:300}

#reasonsSection{background:var(--grn);padding:78px 30px 68px}
.reasons_inner{max-width:1240px;margin:0 auto}
.reasons_header{text-align:center;margin-bottom:50px}
.reasons_header .sec_eyebrow{color:var(--sakura)}
.reasons_header .sec_h2{color:#fff}
.reasons_header .sec_h2_en{color:rgba(255,255,255,.35)}
.reasons_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.reason_card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);padding:30px 24px;transition:background .2s}
.reason_card:hover{background:rgba(255,255,255,.12)}
.reason_icon_txt{font-size:26px;margin-bottom:14px;color:var(--sakura)}
.reason_title{font-family:var(--fnt-jp);font-size:15px;font-weight:700;color:#fff;margin-bottom:8px}
.reason_txt{font-family:var(--fnt-body);font-size:12px;color:rgba(255,255,255,.6);line-height:1.75;font-weight:300}

#faqBlock{max-width:1240px;margin:0 auto;padding:78px 30px 64px}
.faq_header{text-align:center;margin-bottom:50px}
.faq_cols{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}
.faq_item{border-top:1px solid var(--lite)}
.faq_item:last-child{border-bottom:1px solid var(--lite)}
.faq_q_row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 0;cursor:pointer}
.faq_q_txt{font-family:var(--fnt-jp);font-size:14px;font-weight:600;color:var(--dark);line-height:1.4}
.faq_indicator{width:24px;height:24px;background:var(--cream2);border:1px solid var(--lite);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s;font-size:13px;color:var(--mid)}
.faq_item.open .faq_indicator{background:var(--grn);border-color:var(--grn);color:#fff;transform:rotate(45deg)}
.faq_answer{max-height:0;overflow:hidden;transition:max-height .28s ease}
.faq_item.open .faq_answer{max-height:400px}
.faq_answer p{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.85;font-weight:300;padding-bottom:18px}

#testimonialsSection{background:var(--cream2);padding:76px 30px}
.test_inner{max-width:1240px;margin:0 auto}
.test_header{text-align:center;margin-bottom:50px}
.test_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.test_card{background:#fff;padding:30px 26px;border-top:3px solid var(--sakura)}
.test_quote_mark{font-family:var(--fnt-latin);font-size:80px;color:var(--sakura);line-height:.8;margin-bottom:10px;font-style:italic;opacity:.6}
.test_txt{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.85;font-weight:300;margin-bottom:20px;font-style:italic}
.test_author{display:flex;align-items:center;gap:12px}
.test_avatar{width:42px;height:42px;background:var(--grn);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fnt-jp);font-size:15px;color:#fff;font-weight:700}
.test_name{font-family:var(--fnt-jp);font-size:13px;font-weight:700;color:var(--dark)}
.test_loc{font-family:var(--fnt-body);font-size:10px;color:#aaa;letter-spacing:.5px;font-weight:400;margin-top:1px}
.test_stars{display:flex;gap:2px;margin-top:4px;color:var(--gold);font-size:12px;letter-spacing:1px}

#portfolioStrip{max-width:1240px;margin:0 auto;padding:0 30px 82px}
.port_header{text-align:center;margin-bottom:40px}
.port_grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:16px}
.port_item{position:relative;overflow:hidden;cursor:pointer}
.port_item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;background:var(--cream2)}
.port_item_main{aspect-ratio:4/3}
.port_item_sm{aspect-ratio:4/3}
.port_item:hover img{transform:scale(1.04)}
.port_overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,46,30,.85) 0%,transparent 60%);opacity:0;transition:opacity .3s}
.port_item:hover .port_overlay{opacity:1}
.port_info{position:absolute;bottom:0;left:0;right:0;padding:20px;transform:translateY(10px);transition:transform .3s;opacity:0}
.port_item:hover .port_info{transform:translateY(0);opacity:1}
.port_proj_name{font-family:var(--fnt-jp);font-size:15px;font-weight:700;color:#fff;margin-bottom:3px}
.port_proj_loc{font-family:var(--fnt-body);font-size:11px;color:rgba(255,255,255,.6);font-weight:400;letter-spacing:.5px}

#contactCTA{background:var(--dark);padding:82px 30px}
.cta_inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:70px}
.cta_left{flex:1.2}
.cta_h{font-family:var(--fnt-jp);font-size:38px;font-weight:700;color:#fff;line-height:1.25;margin-bottom:16px}
.cta_sub{font-family:var(--fnt-body);font-size:13px;color:rgba(255,255,255,.55);line-height:1.85;font-weight:300;margin-bottom:28px;max-width:440px}
.cta_btn_row{display:flex;gap:12px;flex-wrap:wrap}
.ctabtn_main{background:var(--terra);color:#fff;border:none;padding:14px 32px;font-family:var(--fnt-body);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.ctabtn_main:hover{background:#d48a6a}
.ctabtn_ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.3);padding:14px 28px;font-family:var(--fnt-body);font-size:12px;font-weight:500;letter-spacing:1px;transition:border-color .2s;display:inline-flex;align-items:center}
.ctabtn_ghost:hover{border-color:#fff}
.cta_right{flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:36px 30px}
.cta_info_row{display:flex;align-items:flex-start;gap:14px;margin-bottom:22px}
.cta_info_row:last-child{margin-bottom:0}
.cta_info_icon{width:38px;height:38px;background:rgba(240,205,216,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;color:var(--sakura)}
.cta_info_lbl{font-family:var(--fnt-body);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.4);font-weight:500;margin-bottom:3px}
.cta_info_val{font-family:var(--fnt-body);font-size:13px;color:rgba(255,255,255,.8);font-weight:400;line-height:1.5}

#siteFooter{background:#111;padding:50px 30px 0}
.ftr_top{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:50px;padding-bottom:40px}
.ftr_brand_name{font-family:var(--fnt-jp);font-size:22px;font-weight:700;color:#fff;margin-bottom:6px}
.ftr_brand_tagline{font-family:var(--fnt-latin);font-size:13px;font-style:italic;color:rgba(255,255,255,.35);margin-bottom:18px;letter-spacing:.5px}
.ftr_brand_txt{font-family:var(--fnt-body);font-size:11px;color:rgba(255,255,255,.4);line-height:1.8;font-weight:300;max-width:220px}
.ftr_col_title{font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:16px}
.ftr_col a{display:block;font-family:var(--fnt-body);font-size:12px;color:rgba(255,255,255,.55);font-weight:400;margin-bottom:10px;transition:color .15s}
.ftr_col a:hover{color:#fff;opacity:1}
.ftr_contact_line{display:flex;align-items:center;gap:8px;font-family:var(--fnt-body);font-size:12px;color:rgba(255,255,255,.55);font-weight:300;margin-bottom:10px;line-height:1.5}
.ftr_bottom{max-width:1240px;margin:0 auto;border-top:1px solid rgba(255,255,255,.07);padding:18px 0 28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.ftr_copy{font-family:var(--fnt-body);font-size:10px;color:rgba(255,255,255,.25);font-weight:300;letter-spacing:.5px}
.ftr_legal_links{display:flex;gap:18px}
.ftr_legal_links a{font-family:var(--fnt-body);font-size:10px;color:rgba(255,255,255,.3);letter-spacing:.5px;font-weight:400;text-transform:uppercase}
.ftr_legal_links a:hover{color:rgba(255,255,255,.6);opacity:1}

.div_line{border:none;border-top:1px solid var(--lite);margin:0}

#cartDrawer{position:fixed;bottom:-100%;left:0;right:0;z-index:7000;background:#fff;border-top:3px solid var(--grn);box-shadow:0 -8px 40px rgba(0,0,0,.12);max-height:55vh;transition:bottom .35s cubic-bezier(.25,.8,.25,1)}
#cartDrawer.open{bottom:0}
.cart_drawer_inner{max-width:1240px;margin:0 auto;padding:0 30px;height:100%;display:flex;flex-direction:column}
.cart_drawer_hdr{display:flex;justify-content:space-between;align-items:center;padding:16px 0 14px;border-bottom:1px solid var(--lite);flex-shrink:0}
.cart_hdr_left{display:flex;align-items:center;gap:10px}
.cart_hdr_title{font-family:var(--fnt-jp);font-size:16px;font-weight:700;color:var(--dark);letter-spacing:1px}
.cart_hdr_count{font-family:var(--fnt-body);font-size:11px;color:#aaa;font-weight:400}
.cart_hdr_right{display:flex;align-items:center;gap:12px}
.cart_checkout_btn{background:var(--grn);color:#fff;border:none;padding:10px 24px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.cart_checkout_btn:hover{background:var(--grn2)}
.cart_close_btn{background:none;border:none;font-size:24px;color:var(--mid);line-height:1}
.cart_body{display:flex;gap:24px;flex:1;overflow:hidden;padding:14px 0 18px}
.cart_items_list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.cart_empty_msg{font-family:var(--fnt-body);font-size:13px;color:#aaa;padding:20px 0;font-weight:300;text-align:center}
.cart_item_row{display:flex;align-items:center;gap:14px;padding:10px;background:var(--cream);border-left:3px solid var(--lite)}
.ci_name{flex:1;font-family:var(--fnt-jp);font-size:13px;font-weight:600;color:var(--dark);line-height:1.3}
.ci_price{font-family:var(--fnt-body);font-size:11px;color:#aaa;font-weight:400;margin-top:2px}
.ci_qty_ctrl{display:flex;align-items:center;gap:6px}
.ci_qty_btn{width:24px;height:24px;border:1px solid var(--lite);background:#fff;font-size:14px;color:var(--dark);display:flex;align-items:center;justify-content:center;transition:background .15s}
.ci_qty_btn:hover{background:var(--cream2)}
.ci_qty_val{font-family:var(--fnt-body);font-size:13px;font-weight:700;min-width:22px;text-align:center}
.ci_remove{background:none;border:none;color:#ccc;font-size:16px;display:flex;align-items:center;transition:color .15s}
.ci_remove:hover{color:#c0392b}
.cart_summary_panel{width:280px;flex-shrink:0;background:var(--cream2);padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between}
.csp_rows{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.csp_row{display:flex;justify-content:space-between;font-family:var(--fnt-body);font-size:12px;color:var(--mid);font-weight:400}
.csp_total_row{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px;border-top:1px solid var(--lite)}
.csp_total_lbl{font-family:var(--fnt-jp);font-size:14px;font-weight:700;color:var(--dark)}
.csp_total_val{font-family:var(--fnt-jp);font-size:22px;font-weight:700;color:var(--grn)}
.csp_note{font-family:var(--fnt-body);font-size:10px;color:#bbb;line-height:1.5;font-weight:300;margin-top:8px}

#orderModal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9000;display:none;align-items:center;justify-content:center;padding:20px}
#orderModal.open{display:flex}
.om_box{background:#fff;width:100%;max-width:860px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}
.om_hdr{display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--lite);flex-shrink:0}
.om_title{font-family:var(--fnt-jp);font-size:18px;font-weight:700;color:var(--dark)}
.om_close{background:none;border:none;font-size:26px;color:var(--mid)}
.om_steps_bar{display:flex;padding:16px 28px;gap:0;border-bottom:1px solid var(--lite);flex-shrink:0}
.om_step_indicator{flex:1;display:flex;align-items:center;flex-direction:column;position:relative}
.om_step_indicator::after{content:"";position:absolute;top:13px;left:50%;width:100%;height:1px;background:var(--lite);z-index:0}
.om_step_indicator:last-child::after{display:none}
.om_step_dot{width:26px;height:26px;border-radius:50%;background:var(--cream2);border:2px solid var(--lite);display:flex;align-items:center;justify-content:center;font-family:var(--fnt-body);font-size:11px;font-weight:700;color:var(--mid);position:relative;z-index:1;transition:all .2s}
.om_step_indicator.active .om_step_dot,.om_step_indicator.done .om_step_dot{background:var(--grn);border-color:var(--grn);color:#fff}
.om_step_lbl{font-family:var(--fnt-body);font-size:10px;color:#aaa;margin-top:5px;letter-spacing:.5px;font-weight:400;text-align:center}
.om_step_indicator.active .om_step_lbl{color:var(--grn);font-weight:700}
.om_body{display:flex;flex:1;overflow:hidden}
.om_summary_col{width:260px;flex-shrink:0;background:var(--cream2);padding:24px 20px;overflow-y:auto;border-right:1px solid var(--lite)}
.om_sum_title{font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--mid);margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--lite)}
.om_sum_item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--lite);font-family:var(--fnt-body);font-size:11px}
.om_sum_item_name{color:var(--mid);font-weight:400;flex:1;line-height:1.4}
.om_sum_item_price{color:var(--dark);font-weight:700;white-space:nowrap;margin-left:8px}
.om_sum_total{display:flex;justify-content:space-between;padding-top:12px;font-family:var(--fnt-jp);font-size:16px;font-weight:700;color:var(--grn)}
.om_form_col{flex:1;overflow-y:auto;padding:24px 28px}
.om_panel{display:none}
.om_panel.active{display:block}
.om_field{margin-bottom:14px}
.om_lbl{display:block;font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--dark);margin-bottom:5px}
.om_input,.om_textarea,.om_select{width:100%;border:1px solid var(--lite);padding:10px 12px;font-family:var(--fnt-body);font-size:13px;color:var(--dark);background:var(--cream);outline:none;transition:border-color .15s;font-weight:400}
.om_input:focus,.om_textarea:focus{border-color:var(--grn)}
.om_textarea{min-height:80px;resize:vertical}
.om_2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.om_pay_options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.om_pay_opt{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1.5px solid var(--lite);cursor:pointer;transition:border-color .15s}
.om_pay_opt:hover{border-color:var(--grn)}
.om_pay_opt input[type="radio"]{margin-top:2px;accent-color:var(--grn)}
.om_pay_name{font-family:var(--fnt-body);font-size:13px;font-weight:700;color:var(--dark)}
.om_pay_desc{font-family:var(--fnt-body);font-size:11px;color:#aaa;font-weight:300;margin-top:2px}
.om_ftr_btns{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px;border-top:1px solid var(--lite);flex-shrink:0}
.om_back_btn{background:transparent;border:1.5px solid var(--lite);padding:10px 24px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid);transition:all .15s}
.om_back_btn:hover{border-color:var(--dark);color:var(--dark)}
.om_next_btn{background:var(--grn);color:#fff;border:none;padding:10px 28px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.om_next_btn:hover{background:var(--grn2)}
.om_submit_btn{background:var(--terra);color:#fff;border:none;padding:10px 28px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.om_submit_btn:hover{background:#d48a6a}
.om_confirm_row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--lite);font-family:var(--fnt-body);font-size:12px;color:var(--mid)}
.om_confirm_row strong{color:var(--dark)}
.om_confirm_cart{margin-bottom:18px}

#thankYouModal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:99999;display:none;align-items:center;justify-content:center;padding:20px}
#thankYouModal.open{display:flex}
.ty_box{background:#fff;max-width:440px;width:100%;padding:50px 40px;text-align:center}
.ty_sakura{font-size:48px;margin-bottom:16px}
.ty_h{font-family:var(--fnt-jp);font-size:26px;font-weight:700;color:var(--grn);margin-bottom:12px}
.ty_txt{font-family:var(--fnt-body);font-size:13px;color:var(--mid);line-height:1.85;font-weight:300;margin-bottom:28px}
.ty_close{background:var(--grn);color:#fff;border:none;padding:12px 32px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.ty_close:hover{background:var(--grn2)}

.notif_toast{position:fixed;bottom:24px;right:24px;background:var(--dark);color:#fff;padding:12px 20px;font-family:var(--fnt-body);font-size:12px;font-weight:500;z-index:99999;transform:translateY(60px);opacity:0;transition:all .3s;display:flex;align-items:center;gap:8px;min-width:220px}
.notif_toast.show{transform:translateY(0);opacity:1}

#ckBanner{position:fixed;bottom:24px;left:24px;z-index:99000;max-width:400px;background:#fff;border:1px solid var(--lite);box-shadow:0 8px 40px rgba(0,0,0,.12);padding:24px;display:none}
#ckBanner.show{display:block}
.ck_logo_line{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.ck_logo_dot{width:10px;height:10px;background:var(--grn);border-radius:50%}
.ck_sitename{font-family:var(--fnt-jp);font-size:12px;font-weight:700;color:var(--grn)}
.ck_title{font-family:var(--fnt-jp);font-size:15px;font-weight:700;color:var(--dark);margin-bottom:8px}
.ck_txt{font-family:var(--fnt-body);font-size:11px;color:var(--mid);line-height:1.7;font-weight:300;margin-bottom:16px}
.ck_txt a{color:var(--grn);text-decoration:underline}
.ck_btns{display:flex;flex-direction:column;gap:8px}
.ck_accept_btn{background:var(--grn);color:#fff;border:none;padding:10px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;width:100%;transition:background .2s}
.ck_accept_btn:hover{background:var(--grn2)}
.ck_row2{display:flex;gap:8px}
.ck_reject_btn,.ck_settings_btn{flex:1;background:transparent;border:1px solid var(--lite);padding:9px;font-family:var(--fnt-body);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--mid);transition:all .15s}
.ck_reject_btn:hover,.ck_settings_btn:hover{border-color:var(--dark);color:var(--dark)}

#ckSettingsModal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:999999;display:none;align-items:center;justify-content:center;padding:20px}
#ckSettingsModal.open{display:flex}
.cks_box{background:#fff;max-width:480px;width:100%;max-height:90vh;overflow-y:auto}
.cks_hdr{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--lite)}
.cks_title{font-family:var(--fnt-jp);font-size:15px;font-weight:700}
.cks_x{background:none;border:none;font-size:22px;color:var(--mid)}
.cks_body{padding:16px 22px}
.cks_row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 0;border-bottom:1px solid #f5f5f5}
.cks_row:last-child{border-bottom:none}
.cks_info_name{font-family:var(--fnt-body);font-size:13px;font-weight:700;color:var(--dark);margin-bottom:3px}
.cks_info_desc{font-family:var(--fnt-body);font-size:11px;color:#aaa;font-weight:300;line-height:1.5;max-width:300px}
.cks_toggle_wrap{position:relative;width:44px;height:24px;flex-shrink:0;cursor:pointer}
.cks_toggle_wrap input{opacity:0;width:0;height:0;position:absolute}
.cks_slider{position:absolute;inset:0;background:#ddd;transition:background .2s;border-radius:12px}
.cks_slider::before{content:"";position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;left:3px;bottom:3px;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.cks_toggle_wrap input:checked + .cks_slider{background:var(--grn)}
.cks_toggle_wrap input:checked + .cks_slider::before{transform:translateX(20px)}
.cks_locked .cks_slider{background:var(--grn2);cursor:not-allowed}
.cks_locked .cks_slider::before{transform:translateX(20px)}
.cks_ftr{display:flex;gap:8px;padding:14px 22px;border-top:1px solid var(--lite)}
.cks_save_btn{flex:1;background:var(--grn);color:#fff;border:none;padding:10px;font-family:var(--fnt-body);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s}
.cks_save_btn:hover{background:var(--grn2)}

@media(max-width:1024px){
  .hero_inner{flex-direction:column}
  .hero_formCard{width:100%;max-width:500px;margin:0 auto}
  .prod_grid{grid-template-columns:repeat(2,1fr)}
  .faq_cols{grid-template-columns:1fr}
  .ftr_top{grid-template-columns:1fr 1fr;gap:30px}
  .process_steps{grid-template-columns:repeat(3,1fr)}
  .process_steps::before{display:none}
  .mat_grid{grid-template-columns:repeat(3,1fr)}
  .port_grid{grid-template-columns:1fr 1fr}
  .reasons_grid{grid-template-columns:repeat(2,1fr)}
  .cta_inner{flex-direction:column;gap:40px}
  .om_summary_col{width:220px}
}
@media(max-width:767px){
  #siteNav{display:none}
  #mobNav{display:block}
  .hero_h1{font-size:36px}
  .hero_stats{gap:18px}
  .nums_inner{grid-template-columns:repeat(2,1fr)}
  .prod_grid{grid-template-columns:1fr 1fr;gap:12px}
  .phil_inner{flex-direction:column;gap:30px}
  .sf_inner{flex-direction:column;gap:30px}
  .process_steps{grid-template-columns:1fr;gap:20px}
  .process_steps::before{display:none}
  .mat_grid{grid-template-columns:repeat(2,1fr)}
  .reasons_grid{grid-template-columns:1fr}
  .test_grid{grid-template-columns:1fr}
  .port_grid{grid-template-columns:1fr}
  .ftr_top{grid-template-columns:1fr}
  .cart_body{flex-direction:column}
  .cart_summary_panel{width:100%}
  .om_body{flex-direction:column}
  .om_summary_col{width:100%;max-height:120px}
  .om_2col{grid-template-columns:1fr}
}
@media(max-width:480px){
  #heroMain .hero_inner{padding:50px 18px 38px}
  #catalogMain{padding:55px 16px 14px}
  #philosophyBlock{padding:58px 16px 50px}
  #processBlock{padding:55px 16px 50px}
  #materialsSection{padding:52px 16px 48px}
  #reasonsSection{padding:55px 16px 50px}
  #faqBlock{padding:55px 16px 48px}
  #testimonialsSection{padding:52px 16px}
  #portfolioStrip{padding:0 16px 58px}
  #contactCTA{padding:58px 16px}
  #siteFooter{padding:40px 16px 0}
  .cart_drawer_inner{padding:0 16px}
  .nums_inner{grid-template-columns:repeat(2,1fr)}
  .prod_grid{grid-template-columns:1fr}
}

#cartFloatBtn{position:fixed;bottom:30px;right:30px;z-index:6000;width:54px;height:54px;background:var(--grn);border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(0,0,0,.2);cursor:pointer;transition:background .2s,transform .15s}
#cartFloatBtn:hover{background:var(--grn2);transform:scale(1.06)}
#cartFloatBtn .bi{font-size:21px;color:#fff}
#cartFloatBtn #cartFloatCnt{position:absolute;top:-2px;right:-2px;background:var(--terra);color:#fff;width:20px;height:20px;border-radius:50%;font-size:10px;font-weight:700;display:none;align-items:center;justify-content:center;font-family:'Noto Sans JP',sans-serif}
.reason_card,.test_card,.ty_box,.cta_right{border-radius:12px}
.mat_card{border-radius:10px}
.prod_card{border-radius:10px;overflow:hidden}
.prod_card_img_wrap{border-radius:0}
.prod_modal_box{border-radius:16px;overflow:hidden}
.om_box{border-radius:16px;overflow:hidden}
#ckBanner{border-radius:14px}
.cks_box{border-radius:14px;overflow:hidden}
.hero_formCard{border-radius:14px}
.hero_formCard::before{border-radius:18px}
.phil_img_main{border-radius:12px}
.sf_img_main{border-radius:12px;overflow:hidden}
.cart_item_row{border-radius:8px}
#cartDrawer{border-radius:20px 20px 0 0}
.notif_toast{border-radius:10px}
.hbtn_main,.hbtn_ghost,.nav_cta_btn,.ctabtn_main,.ctabtn_ghost,.hfc_submit,.ck_accept_btn,.cks_save_btn,.om_next_btn,.om_submit_btn,.pm_add_btn,.ty_close,.pcho_cart,.cart_checkout_btn{border-radius:8px}
.ck_reject_btn,.ck_settings_btn,.om_back_btn,.pcho_view,.pcc_cart_btn,.sf_cta{border-radius:6px}
.cf_btn{border-radius:20px}
.hfc_field input,.hfc_field textarea,.om_input,.om_textarea,.pm_qty_sel{border-radius:8px}
.nav_cart_btn{border-radius:10px}
.nav_logo_mark{border-radius:8px}
.prod_badge{border-radius:4px}
.om_pay_opt{border-radius:8px}
.cart_summary_panel{border-radius:10px}
.nav_links a.cur_pg{color:var(--grn);border-bottom:2px solid var(--grn)}
.pg_hero{background:var(--grn);padding:58px 30px 48px}
.pg_hero_inner{max-width:1240px;margin:0 auto}
.pg_crumb{display:flex;align-items:center;gap:8px;margin-bottom:18px}
.pg_crumb a,.pg_crumb span{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:rgba(255,255,255,.5);font-weight:400}
.pg_crumb a:hover{color:#fff;opacity:1}
.pg_crumb_sep{color:rgba(255,255,255,.25)}
.pg_h1{font-family:'Shippori Mincho',serif;font-size:44px;font-weight:700;color:#fff;line-height:1.2;margin-bottom:8px;letter-spacing:-.5px}
.pg_h1_en{font-family:'Cormorant Garamond',serif;font-size:16px;font-style:italic;color:rgba(255,255,255,.38);letter-spacing:1px}
.pg_section{max-width:1240px;margin:0 auto;padding:72px 30px}
.pg_alt{background:var(--cream2)}
.pg_alt_inner{max-width:1240px;margin:0 auto;padding:72px 30px}
.sol_showcase{display:flex;gap:60px;align-items:center}
.sol_showcase_img{flex:1.2;border-radius:12px;overflow:hidden}
.sol_showcase_img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.sol_showcase_txt{flex:1}
.sol_grid6{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sol_card{background:var(--cream2);border-radius:10px;padding:26px 22px;border-bottom:3px solid transparent;transition:border-color .2s,box-shadow .2s,transform .15s}
.sol_card:hover{border-bottom-color:var(--grn);box-shadow:0 6px 24px rgba(0,0,0,.07);transform:translateY(-2px)}
.sol_card_icon{font-size:28px;margin-bottom:12px}
.sol_card_name{font-family:'Shippori Mincho',serif;font-size:16px;font-weight:700;color:var(--dark);margin-bottom:6px}
.sol_card_price{font-family:'Shippori Mincho',serif;font-size:18px;font-weight:700;color:var(--grn);margin-bottom:10px}
.sol_card_txt{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:var(--mid);line-height:1.7;font-weight:300}
.mat_row{display:flex;gap:60px;align-items:center;padding:56px 0;border-bottom:1px solid var(--lite)}
.mat_row:first-of-type{padding-top:0}
.mat_row:last-of-type{border-bottom:none}
.mat_row_rev{flex-direction:row-reverse}
.mat_row_img{flex:1;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:var(--cream2)}
.mat_row_img img{width:100%;height:100%;object-fit:cover;display:block}
.mat_row_txt{flex:1}
.mat_row_h{font-family:'Shippori Mincho',serif;font-size:26px;font-weight:700;color:var(--dark);margin-bottom:14px;line-height:1.3}
.mat_row_p{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--mid);line-height:1.9;font-weight:300;margin-bottom:18px}
.mat_row_tags{display:flex;flex-wrap:wrap;gap:8px}
.mat_tag{background:var(--cream2);border:1px solid var(--lite);padding:5px 12px;border-radius:20px;font-family:'Noto Sans JP',sans-serif;font-size:10px;font-weight:700;letter-spacing:1px;color:var(--mid)}
.mat_duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:44px 0;border-bottom:1px solid var(--lite)}
.mat_duo:last-child{border-bottom:none}
.mat_duo_img{border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:var(--cream2);margin-bottom:16px}
.mat_duo_img img{width:100%;height:100%;object-fit:cover;display:block}
.mat_duo_h{font-family:'Shippori Mincho',serif;font-size:18px;font-weight:700;color:var(--dark);margin-bottom:8px}
.mat_duo_p{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:var(--mid);line-height:1.8;font-weight:300}
.proj_filter_row{display:flex;gap:8px;flex-wrap:wrap}
.proj_filter_btn{background:transparent;border:1.5px solid var(--lite);padding:8px 20px;font-family:'Noto Sans JP',sans-serif;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid);transition:all .15s;border-radius:20px;cursor:pointer}
.proj_filter_btn:hover{border-color:var(--grn);color:var(--grn)}
.proj_filter_btn.pf_active{background:var(--grn);border-color:var(--grn);color:#fff}
.proj_grid_main{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.proj_card{border-radius:10px;overflow:hidden;background:var(--cream2);transition:box-shadow .25s}
.proj_card:hover{box-shadow:0 8px 30px rgba(0,0,0,.1)}
.proj_card_img_wrap{aspect-ratio:4/3;overflow:hidden}
.proj_card_img_wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block}
.proj_card:hover .proj_card_img_wrap img{transform:scale(1.04)}
.proj_card_body{padding:18px 20px 22px}
.proj_card_tag{font-family:'Noto Sans JP',sans-serif;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--terra);margin-bottom:6px}
.proj_card_name{font-family:'Shippori Mincho',serif;font-size:16px;font-weight:700;color:var(--dark);margin-bottom:6px;line-height:1.3}
.proj_card_meta{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:#aaa;font-weight:300;line-height:1.65}
.plan_steps{display:flex;flex-direction:column}
.plan_step{display:flex;gap:28px;padding:28px 0;border-bottom:1px solid var(--lite)}
.plan_step:last-child{border-bottom:none}
.plan_step_num{font-family:'Cormorant Garamond',serif;font-size:46px;font-style:italic;font-weight:700;color:var(--sakura);line-height:1;min-width:64px;padding-top:2px;opacity:.8}
.plan_step_h{font-family:'Shippori Mincho',serif;font-size:18px;font-weight:700;color:var(--dark);margin-bottom:10px}
.plan_step_p{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--mid);line-height:1.9;font-weight:300}
.plan_checklist{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:0}
.plan_check_item{background:#fff;border-radius:10px;padding:18px;display:flex;align-items:flex-start;gap:12px;border-left:3px solid var(--lite)}
.plan_check_icon{font-size:17px;color:var(--grn);flex-shrink:0;margin-top:1px}
.plan_check_h{font-family:'Shippori Mincho',serif;font-size:13px;font-weight:700;color:var(--dark);margin-bottom:4px}
.plan_check_p{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:var(--mid);font-weight:300;line-height:1.6}
.co_about{display:flex;gap:64px;align-items:center}
.co_about_img{flex:1;border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:var(--cream2)}
.co_about_img img{width:100%;height:100%;object-fit:cover;display:block}
.co_about_txt{flex:1.2}
.co_timeline{display:flex;flex-direction:column;max-width:760px;margin:0 auto}
.ct_row{display:flex;gap:32px;padding:22px 0;border-bottom:1px solid var(--lite)}
.ct_row:last-child{border-bottom:none}
.ct_yr{font-family:'Shippori Mincho',serif;font-size:22px;font-weight:700;color:var(--grn);min-width:60px;padding-top:3px}
.ct_title{font-family:'Shippori Mincho',serif;font-size:16px;font-weight:700;color:var(--dark);margin-bottom:5px}
.ct_desc{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:var(--mid);line-height:1.75;font-weight:300}
.val_grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.val_card{background:var(--cream2);border-radius:12px;padding:28px 24px;border-left:4px solid var(--grn)}
.val_num{font-family:'Cormorant Garamond',serif;font-size:42px;font-style:italic;color:var(--sakura);line-height:1;margin-bottom:10px;opacity:.7}
.val_title{font-family:'Shippori Mincho',serif;font-size:16px;font-weight:700;color:var(--dark);margin-bottom:8px}
.val_txt{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:var(--mid);line-height:1.75;font-weight:300}
.cert_row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cert_item{background:#fff;border-radius:10px;padding:20px 16px;text-align:center;border-top:3px solid var(--lite)}
.cert_yr{font-family:'Noto Sans JP',sans-serif;font-size:10px;font-weight:700;letter-spacing:2px;color:var(--terra);margin-bottom:6px;text-transform:uppercase}
.cert_nm{font-family:'Shippori Mincho',serif;font-size:13px;font-weight:700;color:var(--dark);margin-bottom:4px;line-height:1.4}
.cert_org{font-family:'Noto Sans JP',sans-serif;font-size:10px;color:#aaa;font-weight:300}
@media(max-width:1024px){
  .sol_showcase,.co_about{flex-direction:column}
  .mat_row,.mat_row_rev{flex-direction:column;gap:30px}
  .proj_grid_main{grid-template-columns:repeat(2,1fr)}
  .cert_row{grid-template-columns:repeat(2,1fr)}
  .val_grid{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
  .pg_h1{font-size:30px}
  .sol_grid6{grid-template-columns:1fr 1fr;gap:12px}
  .mat_duo{grid-template-columns:1fr}
  .proj_grid_main{grid-template-columns:1fr 1fr}
  .plan_checklist{grid-template-columns:1fr}
  .val_grid{grid-template-columns:1fr}
  .cert_row{grid-template-columns:1fr 1fr}
  .test_grid[style*="repeat(4"]{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .pg_hero{padding:44px 16px 36px}
  .pg_section{padding:50px 16px}
  .pg_alt_inner{padding:50px 16px}
  .sol_grid6{grid-template-columns:1fr}
  .proj_grid_main{grid-template-columns:1fr}
  .cert_row{grid-template-columns:1fr}
  .test_grid[style*="repeat(4"]{grid-template-columns:1fr}
}
.legal-content ul {
  list-style: disc;
  margin-bottom: 1.5rem;
  padding-left: 1.8rem;
}
.legal-content li {
  margin-bottom: 0.35rem;
  line-height: 1.75;
}
.legal-content strong {
  color: var(--dark);
  font-weight: 600;
}
@media (max-width: 767px) {
  .legal-content ul {
    padding-left: 1.2rem;
  }
  .legal-content .sec_h2 {
    font-size: 20px !important;
    margin: 28px 0 10px;
  }
}