:root{--paper:#f3f0e8;--paper2:#ebe6dc;--ink:#1b211a;--muted:#667064;--green:#263e2c;--line:#c9c6bb;--white:#fff;--accent:#b6bc8c;--pad:clamp(24px,5vw,80px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);position:absolute;z-index:20;width:100%;color:#fff}.logo{display:flex;flex-direction:column;line-height:1.25}.logo-en{font-family:Georgia,serif;font-size:20px;letter-spacing:.13em}.logo-ja{font-size:11px;letter-spacing:.15em;opacity:.85}.nav{display:flex;gap:30px;font:12px Georgia,serif;letter-spacing:.1em}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:.3s}.nav a:hover:after{width:100%}.menu-btn{display:none;background:none;border:0;color:#fff}.hero{min-height:100vh;position:relative;overflow:hidden;background:var(--green);color:#fff}.hero-photo{position:absolute;inset:0 0 0 38%;border:0;background:radial-gradient(circle at 60% 30%,rgba(214,223,182,.24),transparent 24%),linear-gradient(135deg,#536653,#2b3d2f 45%,#17241b);display:flex;align-items:center;justify-content:center;flex-direction:column}.replace-photo:before{content:"";position:absolute;inset:18%;border:1px solid rgba(255,255,255,.22)}.replace-photo span,.replace-photo small{position:relative;z-index:1;letter-spacing:.2em}.replace-photo small{font-size:11px;opacity:.7}.hero-copy{position:relative;z-index:2;padding:27vh 5vw 10vh;max-width:590px}.hero-kicker,.section-en{font:12px Georgia,serif;letter-spacing:.22em}.hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:400;font-size:clamp(46px,6vw,88px);line-height:1.25;letter-spacing:.08em;margin:.4em 0}.hero-copy>p:not(.hero-kicker){font-size:14px;letter-spacing:.1em}.arrow-link{display:inline-flex;gap:36px;align-items:center;margin-top:34px;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:9px;font-size:13px}.scroll{position:absolute;right:24px;bottom:28px;z-index:3;display:flex;align-items:center;gap:12px;font:10px Georgia,serif;letter-spacing:.18em;writing-mode:vertical-rl}.scroll span{height:65px;width:1px;background:rgba(255,255,255,.5)}.section-pad{position:relative;padding:clamp(90px,12vw,180px) var(--pad)}.section-index{position:absolute;top:40px;right:var(--pad);font:12px Georgia,serif;color:#7e857b}.concept{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw}.concept-main{padding-left:4vw}.section-en{margin:0 0 30px;color:#5e675d}.concept h2,.section-head h2,.price h2,.about h2,.contact h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:400;font-size:clamp(34px,5vw,66px);line-height:1.45;letter-spacing:.08em;margin:0}.concept-text{max-width:580px;margin:52px 0 0 10vw;font-size:14px}.concept-photo,.about-photo{min-height:580px;background:linear-gradient(145deg,#7d8b76,#374b39);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative}.service{background:#1e2c21;color:#edf0e6}.service .section-index,.service .section-en{color:#a5b19f}.section-head{display:flex;justify-content:space-between;gap:8vw;align-items:end;margin-bottom:76px}.section-head>p{max-width:480px;font-size:13px;color:#8a9188}.service .section-head>p{color:#b6bfb3}.service-list{border-top:1px solid rgba(255,255,255,.2)}.service-list article{display:grid;grid-template-columns:60px 1fr 2fr auto;gap:30px;align-items:center;padding:32px 8px;border-bottom:1px solid rgba(255,255,255,.2)}.service-list article>span{font:12px Georgia,serif}.service-list h3{font-family:"Yu Mincho",serif;font-weight:400;font-size:22px}.service-list p{font-size:13px;color:#bdc4ba}.service-list a{font:12px Georgia,serif;border-bottom:1px solid #849281}.works{background:var(--paper2)}.works-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px 28px}.work-card{min-width:0}.work-visual{display:grid;grid-template-columns:1fr 1fr;gap:2px;aspect-ratio:1.55;background:#d4d1c8;overflow:hidden}.work-img{display:flex;align-items:end;padding:14px;background:linear-gradient(145deg,#73816d,#3b4d3b);color:#fff;font:10px Georgia,serif;letter-spacing:.1em;background-size:cover;background-position:center}.work-card:nth-child(even){transform:translateY(70px)}.work-meta{display:flex;justify-content:space-between;gap:20px;margin-top:16px}.work-meta h3{font-family:"Yu Mincho",serif;font-weight:400;margin:0}.work-meta p{font-size:12px;color:#697068;margin:4px 0}.work-meta strong{font:14px Georgia,serif;font-weight:400}.text-button{border:0;background:none;display:block;margin:120px auto 0;font:13px Georgia,serif;letter-spacing:.15em}.text-button span{margin-left:20px}.price{background:#e1dfd2}.price-intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:70px}.price-intro .section-en{grid-column:1/-1;margin-bottom:0}.price-intro>p:last-child{font-size:13px}.calculator{display:grid;grid-template-columns:1.1fr .9fr;background:#f6f4ed;border:1px solid #c8c6bb}.calc-form{padding:45px;display:grid;gap:22px}.calc-form label,.contact-form label,.admin-section label{display:grid;gap:7px;font-size:12px;letter-spacing:.04em}.calc-form input,.calc-form select,.contact-form input,.contact-form textarea,.admin-section input,.admin-section textarea{width:100%;border:0;border-bottom:1px solid #9fa298;background:transparent;padding:13px 2px;outline:none}.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.fields.hidden,.hidden{display:none!important}.check{display:flex!important;align-items:center;gap:9px}.check input{width:auto}.estimate{background:#263b2b;color:#fff;padding:45px;display:flex;flex-direction:column;justify-content:center}.estimate>p{font:11px Georgia,serif;letter-spacing:.2em}.estimate strong{font:clamp(38px,5vw,65px) Georgia,serif;font-weight:400;margin:10px 0}.estimate>span{font-size:13px}.estimate small{opacity:.65;margin:28px 0}.estimate button,.contact-form button,.admin-section button{border:1px solid currentColor;background:transparent;color:inherit;padding:15px 18px;text-align:left;display:flex;justify-content:space-between}.flow{background:#f7f4ec}.flow-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.flow-list li{display:grid;grid-template-columns:120px 1fr;padding:30px 0;border-bottom:1px solid var(--line)}.flow-list li>span{font:12px Georgia,serif}.flow-list h3{font-family:"Yu Mincho",serif;font-weight:400;font-size:22px;margin:0}.flow-list p{font-size:13px;color:#6b726a}.about{display:grid;grid-template-columns:1fr 1fr;gap:7vw;background:#dcd8cc}.about-copy{align-self:center}.about dl{margin-top:55px;border-top:1px solid #b4b3a9}.about dl div{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid #b4b3a9;padding:14px 0;font-size:13px}.about dt{color:#687066}.about dd{margin:0}.contact{background:#1e2c21;color:#fff;display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw}.contact .section-en{color:#a7b1a3}.contact-heading>p:last-child{color:#b4bcb1;font-size:13px;margin-top:30px}.contact-form{display:grid;gap:24px}.contact-form input,.contact-form textarea{border-color:#657168;color:#fff}.contact-form em{font-style:normal;font-size:10px;color:#bfc7aa}.contact-form small{opacity:.55}.contact-form button{margin-top:18px}.selected-estimate{padding:15px;border:1px solid #758176;font-size:12px}.form-result{font-size:12px;color:#d4dcc7}.footer{background:#141d16;color:#e6e9e2;padding:70px var(--pad) 110px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;position:relative}.footer>div{display:flex;flex-direction:column;gap:8px}.footer-links{align-items:center}.footer-links a{font:12px Georgia,serif}.footer>small{position:absolute;bottom:26px;left:var(--pad);opacity:.55}.admin-link{border:0;background:none;color:#fff;text-decoration:underline;padding:0;text-align:left;font-size:11px}.mobile-cta{display:none}.mobile-menu{display:none}.menu-close{font-size:35px}.admin-shell{width:min(860px,92vw);max-height:88vh;overflow:auto;background:#f4f1e8;color:#1d231d;padding:30px}.admin-shell header{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid #c8c5ba}.admin-shell header h2{margin:0 0 18px;font-family:"Yu Mincho",serif;font-weight:400}.admin-shell header button{border:0;background:none;font-size:28px}.admin-tabs{display:flex;gap:8px;overflow:auto;padding:16px 0}.admin-tabs button{border:1px solid #b9b7ae;background:transparent;padding:8px 12px;white-space:nowrap}.admin-tabs button.active{background:#283c2c;color:#fff}.admin-section{display:none;padding:18px 0}.admin-section.active{display:grid;gap:18px}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.admin-section button{color:#263e2c}.admin-note{font-size:11px;color:#72786f}dialog{padding:0;border:0;background:transparent}dialog::backdrop{background:rgba(10,15,11,.72)}#adminWorks{display:grid;gap:8px}.admin-work-row{display:flex;justify-content:space-between;border-top:1px solid #ccc;padding:10px 0;font-size:12px}.admin-work-row button{padding:4px 8px}@media(max-width:850px){.header{height:72px}.nav{display:none}.menu-btn{display:block}.hero-photo{inset:0;opacity:.72}.hero-copy{padding:29vh 24px 14vh}.hero h1{font-size:50px}.mobile-menu{position:fixed;z-index:99;inset:0;background:#1a271d;color:#fff;padding:90px 28px;flex-direction:column;gap:22px;font:26px Georgia,serif}.mobile-menu.open{display:flex}.menu-close{position:absolute;right:24px;top:18px;background:none;border:0;color:#fff}.concept,.about,.contact{grid-template-columns:1fr}.concept-main{padding:0}.concept-text{margin:35px 0 0}.concept-photo,.about-photo{min-height:380px}.section-head,.price-intro{display:block}.section-head>p,.price-intro>p:last-child{margin-top:26px}.service-list article{grid-template-columns:40px 1fr;gap:12px}.service-list article p,.service-list article a{grid-column:2}.works-grid{grid-template-columns:1fr}.work-card:nth-child(even){transform:none}.calculator{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.footer{grid-template-columns:1fr}.footer-links{align-items:start}.mobile-cta{display:grid;position:fixed;z-index:40;bottom:0;left:0;right:0;grid-template-columns:1fr 1fr;background:#f5f1e8;border-top:1px solid #c3c0b6}.mobile-cta a{text-align:center;padding:14px;font-size:12px}.mobile-cta a:last-child{background:#263e2c;color:#fff}.admin-grid{grid-template-columns:1fr}.section-pad{padding-top:95px;padding-bottom:95px}.section-index{top:24px}.about-copy{padding-top:20px}.flow-list li{grid-template-columns:65px 1fr}}

/* v5: formal service/pricing content */
.service-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)}
.service-detail{display:grid;grid-template-columns:44px 1fr;gap:18px;background:#1e2c21;padding:42px 34px;min-height:100%}
.service-detail-wide{grid-column:1/-1}
.service-no{font:11px Georgia,serif;color:#a9b5a5;padding-top:8px}
.service-detail h3{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:400;font-size:25px;margin:0 0 18px;letter-spacing:.06em}
.service-detail p{font-size:13px;color:#c3cbc0;margin:0 0 20px}
.price-lines{list-style:none;padding:0;margin:24px 0;border-top:1px solid rgba(255,255,255,.18)}
.price-lines li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.18);font-size:13px}
.price-lines strong{font-family:Georgia,"Yu Mincho",serif;font-weight:400;font-size:16px;white-space:nowrap}
.single-price{display:flex;align-items:baseline;gap:8px;margin:26px 0;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:16px}
.single-price strong{font:30px Georgia,serif;font-weight:400}.single-price span{font-size:12px;color:#bbc5b8}
.service-detail .service-note{font-size:11px;color:#aab4a7;margin-bottom:0}
.disposal-info{background:#26392a}.disposal-info strong{color:#fff;font-weight:600}
.single-field{grid-template-columns:1fr 1fr}.single-field .check{align-self:end;padding-bottom:12px}.calc-caution{font-size:11px;color:#6d756d;margin:0}.hedgeFields small{grid-column:1/-1}.fields small{font-size:11px;color:#737a72}
@media(max-width:850px){.service-detail-list{grid-template-columns:1fr}.service-detail-wide{grid-column:auto}.service-detail{grid-template-columns:34px 1fr;padding:34px 22px}.price-lines li{align-items:start}.price-lines strong{text-align:right}.single-field{grid-template-columns:1fr}}


/* v6: younger, friendlier, easier-to-contact direction */
:root{--paper:#fbfaf5;--paper2:#f0f4eb;--ink:#17231c;--muted:#69756e;--green:#176345;--green2:#0f4e38;--lime:#d8ed91;--soft:#eef3e4;--line:#d8ddd2;--accent:#d8ed91}
body{background:var(--paper);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;letter-spacing:.01em}
.header{height:80px}.logo-en{font-family:inherit;font-weight:800;letter-spacing:.09em}.nav{font-family:inherit;font-weight:600}.hero{background:var(--green2);min-height:94vh}.hero-photo{inset:0 0 0 46%;background:radial-gradient(circle at 50% 20%,rgba(216,237,145,.22),transparent 28%),linear-gradient(145deg,#5b7a62,#224b36 55%,#123b2b);border-radius:0 0 0 54px}.hero-copy{padding:22vh 5vw 9vh;max-width:700px}.hero-kicker,.section-en{font-family:inherit;font-weight:800;letter-spacing:.15em}.hero h1{font-family:inherit;font-weight:800;letter-spacing:-.035em;line-height:1.08;font-size:clamp(48px,6vw,86px);margin:.35em 0}.hero-copy>p:not(.hero-kicker){font-size:15px;line-height:2;letter-spacing:.02em;max-width:600px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.primary-cta,.secondary-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 22px;border-radius:999px;font-weight:700;font-size:13px}.primary-cta{background:var(--lime);color:#193020}.secondary-cta{border:1px solid rgba(255,255,255,.55);color:#fff}.primary-cta:hover,.secondary-cta:hover{transform:translateY(-2px)}.hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.hero-badges span{font-size:11px;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:7px 11px;background:rgba(255,255,255,.06)}
.easy-strip{max-width:1180px;margin:-42px auto 0;position:relative;z-index:6;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 24px}.easy-strip article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;gap:15px;box-shadow:0 12px 36px rgba(27,65,44,.08)}.easy-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--lime);font-size:11px;font-weight:800;flex:none}.easy-strip strong{font-size:14px}.easy-strip p{font-size:11px;line-height:1.65;color:var(--muted);margin:5px 0 0}
.section-pad{padding:clamp(84px,10vw,150px) var(--pad)}.section-index{font-family:inherit;font-weight:700}.concept{padding-top:140px}.concept h2,.section-head h2,.price h2,.about h2,.contact h2{font-family:inherit;font-weight:800;letter-spacing:-.025em;line-height:1.25}.concept-text{font-size:14px;line-height:2}.concept-photo,.about-photo{border-radius:30px;overflow:hidden}.service{background:#103f2e}.service-detail-list{border:0;background:transparent;gap:14px}.service-detail{background:#174a37;border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:30px;transition:.2s}.service-detail:hover{transform:translateY(-3px);background:#1a523d}.service-detail-wide{border-radius:22px}.service-detail h3{font-family:inherit;font-weight:800;letter-spacing:-.01em}.price-lines strong,.single-price strong{font-family:inherit;font-weight:800}.disposal-info{background:#1c563f}
.works{background:#f1f5ec}.work-visual{border-radius:20px}.work-meta h3{font-family:inherit;font-weight:800}.price{background:#eaf0df}.calculator{border:0;border-radius:26px;overflow:hidden;box-shadow:0 20px 60px rgba(31,65,42,.10)}.calc-form{background:#fff}.calc-form input,.calc-form select,.contact-form input,.contact-form textarea,.admin-section input,.admin-section textarea{border:1px solid #d8ddd5;border-radius:12px;padding:13px 14px;background:rgba(255,255,255,.9)}.estimate{background:var(--green);}.estimate strong{font-family:inherit;font-weight:800}.estimate button,.contact-form button,.admin-section button{border-radius:999px;font-weight:700;padding:14px 18px}.flow{background:#fff}.flow-list{border-top:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.flow-list li{display:block;border:1px solid var(--line);border-radius:20px;padding:24px}.flow-list li>span{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--lime);border-radius:50%;font-family:inherit;font-weight:800}.flow-list h3{font-family:inherit;font-weight:800;font-size:18px;margin-top:16px}.about{background:#eef1e7}.contact{background:#103f2e}.contact h2{white-space:pre-line}.contact-form{background:rgba(255,255,255,.06);padding:26px;border-radius:22px}.contact-form input,.contact-form textarea{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(255,255,255,.55)}.contact-form button{background:var(--lime);color:#173221;border:0}.footer{background:#0b2d21}.mobile-cta{box-shadow:0 -8px 30px rgba(18,49,34,.1)}.mobile-cta a:last-child{background:var(--green)}
@media(max-width:850px){.hero{min-height:90vh}.hero-photo{inset:0;opacity:.56;border-radius:0}.hero-copy{padding:24vh 22px 13vh}.hero h1{font-size:52px}.hero-actions{display:grid;grid-template-columns:1fr}.primary-cta,.secondary-cta{width:100%}.easy-strip{grid-template-columns:1fr;margin:-34px auto 0}.concept{padding-top:100px}.service-detail{padding:26px 20px}.flow-list{grid-template-columns:1fr 1fr}.contact-form{padding:20px}.mobile-cta a{font-weight:700}.work-card:nth-child(even){transform:none}}
@media(max-width:520px){.flow-list{grid-template-columns:1fr}.hero-badges span{font-size:10px}.easy-strip{padding:0 14px}.section-pad{padding-left:18px;padding-right:18px}}


/* v8 header navigation improvements */
.header{position:fixed;top:0;left:0;right:0;height:auto;padding:16px var(--pad);align-items:center;transition:background .25s ease, box-shadow .25s ease, color .25s ease}
.header.scrolled{background:rgba(244,240,232,.95);backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(0,0,0,.08);color:var(--green)}
.header.scrolled .logo-ja,.header.scrolled .menu-btn{color:var(--green)}
.header.scrolled .logo{color:var(--green)}
.nav{gap:10px;padding:8px;border-radius:22px;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.nav a{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:124px;padding:12px 14px;border-radius:16px;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease}
.nav a:hover{transform:translateY(-2px);background:rgba(255,255,255,.16)}
.nav a:after{display:none}
.nav .nav-title{font-family:inherit;font-size:14px;font-weight:800;letter-spacing:.02em;line-height:1.2}
.nav a small{font-size:10px;letter-spacing:.02em;opacity:.92;line-height:1.25}
.nav a.nav-strong{background:rgba(214,238,145,.22);border-color:rgba(214,238,145,.45)}
.nav a.nav-accent{background:#fff;color:#1c3524;border-color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.nav a.nav-accent small{opacity:.8}
.header.scrolled .nav{background:rgba(255,255,255,.86)}
.header.scrolled .nav a{color:#1f3023;background:#fff;border-color:#dde3d6}
.header.scrolled .nav a.nav-strong{background:#eff6d5;border-color:#d7e3b2}
.header.scrolled .nav a.nav-accent{background:#234632;color:#fff;border-color:#234632}
.nav a.active{background:#fff;color:#1e3527;border-color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.10)}
.nav a.active small{opacity:.82}
.nav a.nav-accent.active{background:#234632;color:#fff;border-color:#234632}
.nav a.nav-strong.active{background:#eff6d5;color:#223627;border-color:#d7e3b2}
.menu-btn{padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);font-weight:800;letter-spacing:.04em}
.mobile-menu{background:#edf3e9;color:#18301f;padding:88px 18px 24px}
.mobile-menu a{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:16px;background:#fff;border:1px solid #d7dfd4;box-shadow:0 8px 20px rgba(0,0,0,.05);font-family:inherit;font-size:16px;font-weight:800;line-height:1.3}
.mobile-menu a small{font-size:12px;font-weight:600;color:#5f6f64}
.mobile-menu .mobile-menu-title{font-size:18px}
.mobile-menu a.mobile-emphasis{background:#f6fadc;border-color:#dce9b8}
.mobile-menu a.mobile-emphasis.strong{background:#234632;color:#fff;border-color:#234632}
.mobile-menu a.mobile-emphasis.strong small{color:#dbe8df}
.mobile-menu a.active{outline:2px solid #234632}
@media(max-width:1100px){.nav a{min-width:112px;padding:10px 12px}.nav .nav-title{font-size:13px}.nav a small{font-size:9px}}
@media(max-width:850px){.header{padding:12px 18px}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.hero-copy{padding-top:24vh}.header.scrolled{padding:10px 18px}}


/* v9 public business information */
.area-detail{margin-top:28px;padding:22px;border:1px solid #cfd8cc;border-radius:18px;background:rgba(255,255,255,.55)}
.area-detail h3{margin:0 0 12px;font-size:17px}.area-detail p{font-size:12px;line-height:1.9;color:#56645b;margin:12px 0}.area-detail strong{color:#1e3c2c}


/* v10 visible service-area section */
.area-section{background:#f7f7f1}
.area-head{margin-bottom:42px}
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.area-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 14px 38px rgba(31,65,42,.06)}
.area-card-heading{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.area-label{display:inline-flex;align-items:center;justify-content:center;background:var(--lime);color:#203326;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:800}
.area-card h3{margin:0;font-size:21px;font-weight:800}
.area-tags{display:flex;flex-wrap:wrap;gap:8px}
.area-tags span{display:inline-flex;align-items:center;background:#f3f6ef;border:1px solid #dce4d8;border-radius:999px;padding:8px 11px;font-size:12px;line-height:1.2;color:#344239}
@media(max-width:850px){.area-grid{grid-template-columns:1fr}.area-card{padding:22px 18px}.area-tags span{font-size:11px;padding:7px 10px}}


/* v11 川越SEO・サービス詳細ページ */
.local-seo-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,7vw,90px);align-items:center;background:#fff}.local-seo-copy h2{font-size:clamp(32px,4.6vw,58px);line-height:1.28;margin:0 0 24px;font-weight:800;letter-spacing:-.035em}.local-seo-copy>p:not(.section-en){color:var(--muted);max-width:680px}.inline-link-button{display:inline-flex;align-items:center;gap:24px;margin-top:24px;padding:14px 20px;background:var(--green);color:#fff;border-radius:999px;font-weight:700;font-size:13px}.local-seo-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.local-seo-links a{min-height:128px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--soft);display:grid;grid-template-columns:1fr auto;align-content:center;gap:4px 10px;transition:.2s}.local-seo-links a:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(31,65,42,.08)}.local-seo-links strong{font-size:16px}.local-seo-links small{grid-column:1;color:var(--muted)}.local-seo-links span{grid-row:1/3;grid-column:2;align-self:center;font-size:20px}.service-more{display:inline-flex;margin-top:10px;color:#dceaa8;font-size:12px;font-weight:700;border-bottom:1px solid rgba(220,234,168,.45);padding-bottom:3px}
.subpage-body{background:#fbfaf5;color:var(--ink)}.subpage-header{position:sticky;top:0;z-index:20;background:rgba(251,250,245,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:14px max(20px,5vw);display:flex;align-items:center;justify-content:space-between;gap:24px}.subpage-logo{font-weight:800;font-size:15px}.subpage-nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.subpage-nav a{padding:8px 12px;border-radius:999px;font-size:12px;font-weight:700}.subpage-nav a:hover{background:var(--green);color:#fff}.breadcrumb{max-width:1120px;margin:0 auto;padding:20px 24px 0;color:var(--muted);font-size:12px}.breadcrumb a{text-decoration:underline;text-underline-offset:3px}.subpage-hero{max-width:1120px;margin:0 auto;padding:clamp(70px,10vw,130px) 24px 70px;display:grid;grid-template-columns:1fr .85fr;gap:8vw;align-items:center}.subpage-hero .eyebrow{font-size:12px;font-weight:800;color:var(--green);letter-spacing:.08em}.subpage-hero h1{font-size:clamp(40px,6vw,72px);line-height:1.16;letter-spacing:-.04em;margin:14px 0 24px}.subpage-hero p{color:var(--muted);font-size:15px;line-height:2}.subpage-hero-card{background:var(--green2);color:#fff;border-radius:28px;padding:34px;box-shadow:0 24px 60px rgba(16,63,46,.16)}.subpage-hero-card p{color:#d5e2da;font-size:13px}.subpage-hero-card a{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:14px 16px;border-radius:999px;background:var(--lime);color:#163322;font-weight:800}.content-section{max-width:1120px;margin:0 auto;padding:80px 24px}.content-section.alt{max-width:none;background:#eef3e8}.content-section.alt>.inner{max-width:1120px;margin:0 auto}.content-title{font-size:clamp(28px,4vw,44px);line-height:1.35;margin:0 0 18px}.lead{max-width:780px;color:var(--muted);line-height:2}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:36px}.detail-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px}.detail-card h2,.detail-card h3{margin-top:0}.detail-card p{color:var(--muted)}.detail-price{margin:22px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.detail-price li{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-price strong{white-space:nowrap}.note-box{margin-top:28px;padding:20px 22px;border-radius:16px;background:#f7f3e5;border:1px solid #e8dfbb;font-size:13px}.cta-band{max-width:1120px;margin:40px auto 90px;padding:32px;border-radius:26px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px}.cta-band h2{margin:0;font-size:clamp(24px,3vw,36px)}.cta-band p{margin:8px 0 0;color:#d9e5de}.cta-band a{white-space:nowrap;padding:14px 18px;border-radius:999px;background:var(--lime);color:#163322;font-weight:800}.faq-list{display:grid;gap:10px;margin-top:30px}.faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.faq-item h3{font-size:16px;margin:0 0 8px}.faq-item p{margin:0;color:var(--muted)}.subpage-footer{background:#0b2d21;color:#e6eee8;padding:44px max(20px,5vw);display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.subpage-footer a{text-decoration:underline;text-underline-offset:3px}@media(max-width:900px){.local-seo-intro,.subpage-hero{grid-template-columns:1fr}.local-seo-links{grid-template-columns:1fr 1fr}.subpage-nav{display:none}.detail-grid{grid-template-columns:1fr}.cta-band{display:block}.cta-band a{display:inline-flex;margin-top:18px}}@media(max-width:560px){.local-seo-links{grid-template-columns:1fr}.subpage-hero{padding-top:50px}.subpage-hero h1{font-size:42px}.content-section{padding:60px 18px}.cta-band{margin:24px 18px 70px}.subpage-header{padding:12px 18px}}


/* v12 施工事例・FAQ */
.works-empty{margin:24px 0 0;padding:30px;border:1px solid var(--line);border-radius:22px;background:#fff;max-width:760px}
.works-empty strong{display:block;font-size:18px;margin-bottom:8px}.works-empty p{margin:0 0 18px;color:var(--muted);font-size:13px;line-height:1.9}.works-empty a{display:inline-flex;gap:16px;align-items:center;padding:12px 16px;border-radius:999px;background:var(--green);color:#fff;font-size:12px;font-weight:800}.works-archive-link{text-decoration:none}.works-page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}.works-page-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}.works-page-photo{min-height:210px;background:linear-gradient(145deg,#78927e,#31523d);display:grid;place-items:center;color:#fff;font-weight:800}.works-page-content{padding:22px}.works-page-content h2{font-size:19px;margin:0 0 8px}.works-page-content p{font-size:13px;color:var(--muted);margin:0}.works-page-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.works-page-meta span{font-size:11px;padding:6px 9px;border-radius:999px;background:var(--soft);border:1px solid var(--line)}.works-guide{margin-top:34px;padding:26px;border-radius:20px;background:#eef3e8}.works-guide h2{margin-top:0}.works-guide ul{margin-bottom:0;color:var(--muted)}.faq-page{max-width:900px}.faq-page .faq-item{padding:24px}.faq-page .faq-item h3{font-size:17px}.template-warning{padding:16px 18px;background:#fff3cd;border:1px solid #ead99a;border-radius:14px;color:#62551d;font-size:13px;margin:20px 0}
@media(max-width:850px){.works-page-grid{grid-template-columns:1fr}.works-empty{padding:22px}}


/* v13: crawlability, FAQ, service area and mobile conversion improvements */
.site-guide{background:#f7f8f2}.site-guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.site-guide-grid a{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff;transition:.2s}.site-guide-grid a:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(20,60,40,.08)}.site-guide-grid strong{font-size:18px}.site-guide-grid span{font-size:12px;color:var(--muted)}
.area-tag-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.area-tag{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;border:1px solid #d5ddd2;background:#fff;font-size:13px}.area-tag.featured{background:var(--green);color:#fff;border-color:var(--green);font-weight:800}.area-note{margin-top:28px;font-size:12px;color:var(--muted)}
.faq-list{display:grid;gap:12px;max-width:900px}.faq-item{border:1px solid var(--line);border-radius:18px;background:#fff;padding:0 20px}.faq-item summary{cursor:pointer;list-style:none;padding:20px 36px 20px 0;font-weight:800;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"＋";position:absolute;right:0;top:18px;font-size:20px}.faq-item[open] summary:after{content:"−"}.faq-item p{margin:0;padding:0 0 20px;color:var(--muted);font-size:14px;line-height:1.9}
.page-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;margin-top:24px;padding:15px 20px;border-radius:999px;background:var(--green);color:#fff;font-weight:800}.template-warning{padding:16px 18px;border-radius:14px;background:#fff3ca;border:1px solid #ead991;font-size:12px;margin-bottom:30px}.error-page{min-height:75vh;display:flex;flex-direction:column;justify-content:center}
.subpage-mobile-cta{display:none}
@media(max-width:900px){.site-guide-grid{grid-template-columns:1fr 1fr}.subpage-mobile-cta{display:grid;position:fixed;z-index:60;bottom:0;left:0;right:0;grid-template-columns:1fr 1fr;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.08)}.subpage-mobile-cta a{text-align:center;padding:14px;font-size:13px;font-weight:800}.subpage-mobile-cta a:last-child{background:var(--green);color:#fff}.subpage-footer{padding-bottom:90px}}
@media(max-width:560px){.site-guide-grid{grid-template-columns:1fr}.area-tag{font-size:12px;padding:8px 11px}}


/* v15 公開後の整備版 */
.v15-header{position:fixed;background:rgba(16,45,32,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.12)}
.v15-header .logo-ja{font-size:15px;font-weight:800;letter-spacing:.04em;opacity:1}
.v15-nav{font-family:inherit;letter-spacing:.02em;gap:8px}.v15-nav a{padding:9px 12px;border-radius:999px;font-size:12px;font-weight:700}.v15-nav a:hover,.v15-nav a.active{background:rgba(255,255,255,.12)}.v15-nav .nav-accent{background:#eef0bd;color:#153122}.v15-nav .nav-accent:hover{background:#fff0b8;color:#153122}
.v15-hero{min-height:760px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);align-items:center;gap:clamp(30px,5vw,80px);padding:140px var(--pad) 90px;background:radial-gradient(circle at 82% 15%,rgba(182,188,140,.24),transparent 25%),linear-gradient(135deg,#173322,#274833 56%,#10271b)}
.v15-hero-copy{padding:0;max-width:690px}.v15-hero h1{font-size:clamp(52px,7vw,94px);margin:.32em 0}.v15-hero-copy>p:not(.hero-kicker){font-size:15px;line-height:2;letter-spacing:.035em;color:#e4ebe5}.hero-summary{position:relative;z-index:2;background:rgba(249,249,241,.97);color:#173122;border-radius:28px;padding:28px;box-shadow:0 28px 70px rgba(0,0,0,.2)}.hero-summary-label{font-size:12px;font-weight:800;color:#6a746c;margin-bottom:8px}.hero-summary article{display:grid;grid-template-columns:1fr auto;gap:2px 18px;padding:18px 0;border-bottom:1px solid #d9ddd6}.hero-summary article span{font-weight:800}.hero-summary article strong{font-size:22px}.hero-summary article small{grid-column:1/-1;color:#6a746c}.hero-summary>a{display:flex;justify-content:space-between;margin-top:20px;padding:14px 16px;border-radius:999px;background:#173c2a;color:#fff;font-weight:800;font-size:13px}
.v15-easy{background:#fff}.compact-local{padding-top:100px;padding-bottom:100px}.trust-panel{padding:34px;border-radius:28px;background:#edf2e7;border:1px solid #d9e0d4}.trust-panel>p{font-size:12px;font-weight:800;color:#627064}.trust-panel>strong{display:block;font-size:24px;line-height:1.55;margin:12px 0 18px}.trust-panel ul{margin:0;padding-left:1.2em;color:#566259;font-size:14px}
.v15-service{background:#173122}.v15-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.v15-service-card{display:grid;grid-template-columns:50px 1fr;gap:6px 18px;padding:28px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.055);transition:.2s}.v15-service-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.09)}.v15-service-card>span{grid-row:1/5;font:12px Georgia,serif;color:#bac8bd}.v15-service-card h3{margin:0;font-size:22px}.v15-service-card p{margin:4px 0;color:#c4cec6;font-size:13px}.v15-service-card strong{font-size:17px;color:#f2f3c9}.v15-service-card small{color:#d9e6dc;font-weight:700}.service-subline{margin-top:20px;padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.06);font-size:13px;color:#c7d1ca}
.v15-works{padding-top:100px;padding-bottom:100px}.v15-works-empty{max-width:none;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.v15-works-empty>p{flex:1 1 420px;margin:0}.v15-works-empty>a{margin-left:auto}
.v15-about{grid-template-columns:.8fr 1.2fr;background:#e7e4da}.about-intro{align-self:center}.about-intro>p:not(.section-en){color:#657066;margin:24px 0}.v15-about-copy{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px}.v15-about-copy dl{margin-top:0}
.area-preview{background:#f7f6f1}.area-preview-tags{display:flex;flex-wrap:wrap;gap:9px;margin:-35px 0 28px}.area-preview-tags span{padding:9px 13px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:12px}.area-preview-tags span:first-child{background:#173c2a;color:#fff;border-color:#173c2a;font-weight:800}
.v15-contact{grid-template-columns:.9fr 1.1fr}.contact-options{display:grid;gap:14px}.contact-phone-card{display:grid;gap:8px;padding:28px;border-radius:24px;background:#f4f3df;color:#153122}.contact-phone-card small{font-weight:800}.contact-phone-card strong{font-size:clamp(30px,4vw,48px);line-height:1.1}.contact-phone-card span{font-weight:800}.contact-preparing{padding:22px;border:1px solid #64776a;border-radius:20px;color:#dce5df}.contact-preparing p{margin:7px 0 0;font-size:12px;color:#b9c5bc}.contact-faq-link{padding:14px 18px;border:1px solid #607166;border-radius:999px;font-weight:800;font-size:13px}.v15-footer{grid-template-columns:1fr 1fr 1fr}.v15-footer span{font-size:12px;color:#aeb9b1}
.v15-mobile-cta a:last-child{background:#173c2a;color:#fff}
#selectedEstimate{background:rgba(255,255,255,.08);border-color:#718276;border-radius:14px}
@media(max-width:900px){.v15-hero{grid-template-columns:1fr;min-height:auto;padding-top:130px}.hero-summary{max-width:620px}.v15-service-grid{grid-template-columns:1fr}.v15-about{grid-template-columns:1fr}.v15-contact{grid-template-columns:1fr}.v15-footer{grid-template-columns:1fr}.v15-works-empty>a{margin-left:0}.area-preview-tags{margin-top:0}}
@media(max-width:560px){.v15-hero{padding:110px 20px 65px}.v15-hero h1{font-size:52px}.hero-actions{display:grid}.hero-actions a{justify-content:space-between}.hero-summary{padding:22px;border-radius:22px}.v15-service-card{grid-template-columns:36px 1fr;padding:22px}.trust-panel{padding:24px}.trust-panel>strong{font-size:20px}.contact-phone-card strong{font-size:31px}}

/* v16 レスポンシブ強化版 --------------------------------------------------
   ウィンドウ幅・高さ・縦横比が変わってもレイアウトが破綻しにくいよう、
   固定的な幅/高さを避け、grid/flex の縮小と折り返しを補強する。
------------------------------------------------------------------------ */

html,body{max-width:100%;overflow-x:clip}
img,picture,video,canvas,svg,iframe{max-width:100%;height:auto}
main,section,header,footer,nav,article,aside,div{min-width:0}
a,p,li,dd,dt,strong,small,span,h1,h2,h3,h4{overflow-wrap:anywhere}
input,select,textarea,button{min-width:0;max-width:100%}

/* 超横長画面ではヒーローだけ左右余白を少し広げる */
.v15-hero{padding-left:max(var(--pad),calc((100vw - 1600px)/2));padding-right:max(var(--pad),calc((100vw - 1600px)/2))}

/* ヘッダー：中間幅では文字を詰め、衝突する前にモバイルメニューへ切替 */
.v15-header{gap:18px;min-width:0}
.v15-header .logo{flex:0 1 auto;min-width:0}
.v15-header .logo-ja{white-space:nowrap}
.v15-nav{min-width:0;justify-content:flex-end;flex-wrap:nowrap}
.v15-nav a{white-space:nowrap;min-width:0}
@media(max-width:1180px){
  .v15-nav{gap:4px}
  .v15-nav a{padding:8px 8px;font-size:11px}
}
@media(max-width:1020px){
  .v15-header .v15-nav{display:none}
  .v15-header .menu-btn{display:inline-flex;align-items:center;justify-content:center}
  .v15-header{height:76px;padding:10px clamp(18px,4vw,42px)}
  .mobile-menu{font-size:clamp(17px,3vw,24px)}
  .subpage-nav{display:none}
}

/* ヒーロー：短い横長画面でも大見出し・料金カードが干渉しない */
.v15-hero{
  min-height:100svh;
  grid-template-columns:minmax(0,1.08fr) minmax(min(100%,300px),.92fr);
  padding-top:clamp(120px,17vh,160px);
  padding-bottom:clamp(64px,10vh,100px);
}
.v15-hero-copy,.hero-summary{min-width:0}
.v15-hero h1{font-size:clamp(48px,6.4vw,94px);text-wrap:balance}
.hero-summary article{grid-template-columns:minmax(0,1fr) auto}
.hero-summary article strong{white-space:nowrap}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-actions>a{max-width:100%}

@media(max-width:1020px){
  .v15-hero{grid-template-columns:1fr;min-height:auto;padding-top:118px}
  .v15-hero-copy{max-width:760px}
  .hero-summary{width:min(100%,680px);max-width:none}
}
@media(max-height:720px) and (min-width:1021px){
  .v15-hero{min-height:auto;padding-top:108px;padding-bottom:48px;gap:32px}
  .v15-hero h1{font-size:clamp(44px,5.2vw,72px);margin:.2em 0}
  .v15-hero-copy>p:not(.hero-kicker){line-height:1.7}
  .hero-summary{padding:22px}
  .hero-summary article{padding:12px 0}
}

/* グリッドは固定列数より「入るだけ並べる」を優先 */
.v15-service-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.site-guide-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.works-page-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.local-seo-links{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}

/* セクション見出し：狭くなったら自然に縦積み */
.section-head,.price-intro{min-width:0}
@media(max-width:1020px){
  .section-head,.price-intro{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}
  .section-head>p,.price-intro>p:last-child{max-width:760px;margin-top:0}
  .price-intro .section-en{grid-column:auto}
}

/* 料金計算：中間幅でもフォームが潰れない */
.calculator{grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);overflow:hidden}
.calc-form,.estimate{min-width:0}
.fields{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:980px){
  .calculator{grid-template-columns:1fr}
  .estimate{min-height:260px}
}
@media(max-width:680px){
  .fields{grid-template-columns:1fr}
  .calc-form,.estimate{padding:clamp(22px,6vw,34px)}
}

/* 会社情報・問い合わせ：長い住所や電話番号で横幅を押し広げない */
.about dl div{grid-template-columns:minmax(82px,120px) minmax(0,1fr);gap:14px}
.about dd{min-width:0}
.contact-phone-card strong{font-size:clamp(26px,4.5vw,48px);overflow-wrap:anywhere}
.v15-contact,.v15-about{min-width:0}

/* ボタン・カード類 */
.page-cta,.inline-link-button,.contact-faq-link{max-width:100%;white-space:normal}
.v15-service-card,.site-guide-grid a,.works-page-card,.trust-panel,.v15-about-copy,.contact-phone-card{min-width:0}
.v15-works-empty{align-items:flex-start}
.v15-works-empty>p{min-width:0}

/* フッターは幅に応じて自動調整 */
.v15-footer{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}

/* サブページ */
.subpage-header{gap:20px}
.subpage-logo{min-width:0;overflow-wrap:anywhere}
.subpage-hero{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr)}
.subpage-hero h1{font-size:clamp(38px,5vw,64px);text-wrap:balance}
@media(max-width:1020px){
  .subpage-hero{grid-template-columns:1fr}
}

/* タブレット以下 */
@media(max-width:760px){
  :root{--pad:clamp(18px,5vw,30px)}
  .section-pad{padding-top:clamp(72px,14vw,100px);padding-bottom:clamp(72px,14vw,100px)}
  .v15-hero{padding-top:108px;padding-bottom:62px}
  .v15-hero h1{font-size:clamp(42px,10vw,62px);letter-spacing:.045em}
  .hero-summary article{gap:4px 12px}
  .hero-summary article strong{font-size:clamp(18px,5vw,22px)}
  .v15-works-empty{display:grid;grid-template-columns:1fr}
  .v15-works-empty>a{margin-left:0;width:fit-content}
  .about dl div{grid-template-columns:1fr;gap:2px}
  .about dt{font-size:11px}
  .flow-list li{grid-template-columns:52px minmax(0,1fr)}
}

/* 小型スマホでも固定52pxの見出しなどがはみ出さない */
@media(max-width:560px){
  .v15-hero{padding-left:18px;padding-right:18px}
  .v15-hero h1{font-size:clamp(38px,12vw,52px);line-height:1.2}
  .hero-summary{padding:20px;border-radius:20px}
  .hero-summary article{grid-template-columns:1fr}
  .hero-summary article strong{white-space:normal;margin-top:3px}
  .hero-summary article small{grid-column:auto}
  .v15-service-card{grid-template-columns:32px minmax(0,1fr);gap:5px 12px;padding:20px}
  .v15-service-card h3{font-size:20px}
  .trust-panel,.v15-about-copy,.contact-phone-card{padding:20px}
  .area-preview-tags{gap:7px}
  .area-preview-tags span{font-size:11px;padding:7px 10px}
  .page-cta{width:100%;border-radius:18px;align-items:center}
  .subpage-hero h1{font-size:clamp(36px,11vw,48px)}
}

/* かなり小さい幅（分割画面・旧端末） */
@media(max-width:380px){
  .v15-header .logo-ja{font-size:13px}
  .menu-btn{padding:9px 10px;font-size:12px}
  .v15-hero{padding-left:14px;padding-right:14px}
  .v15-hero h1{font-size:36px}
  .hero-summary{padding:17px}
  .section-pad{padding-left:14px;padding-right:14px}
  .mobile-cta a,.subpage-mobile-cta a{padding:12px 8px;font-size:11px}
}

/* iPhone 等のホームインジケータ領域 */
@supports(padding:max(0px)){
  .mobile-cta,.subpage-mobile-cta{padding-bottom:env(safe-area-inset-bottom)}
}


/* v17 見た目・操作性の仕上げ ------------------------------------------------
   v16 のレスポンシブ補強に加え、画面サイズが変わっても余白・文字・カードの
   密度が自然に見えるよう調整。キーボード操作やモバイルメニューも改善する。
---------------------------------------------------------------------------- */
:root{
  --content-max:1280px;
  --radius-lg:28px;
  --radius-md:20px;
  --focus:#d9ef75;
}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden;touch-action:none}

/* キーボード操作時だけ、現在位置が明確に分かるようにする */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:3px;
}

/* 大画面でコンテンツが横に広がりすぎないよう統一 */
.v15-header{
  padding-left:max(var(--pad),calc((100vw - 1440px)/2));
  padding-right:max(var(--pad),calc((100vw - 1440px)/2));
}
.v15-service>.section-head,
.v15-service>.v15-service-grid,
.v15-service>.service-subline,
.v15-works>.section-head,
.v15-works>.v15-works-empty,
.price>.price-intro,
.price>.calculator,
.flow>.section-head,
.flow>.flow-list,
.area-preview>.section-head,
.area-preview>.area-preview-tags,
.area-preview>.inline-link-button{
  width:min(100%,var(--content-max));
  margin-left:auto;
  margin-right:auto;
}

/* 見出しの改行を極端にしない */
.section-head h2,.price h2,.about h2,.contact h2,.local-seo-copy h2,.content-title{
  text-wrap:balance;
}
.section-head{margin-bottom:clamp(38px,5vw,70px)}
.section-head>p{line-height:1.9}

/* カードの高さと文字位置をそろえる */
.v15-service-grid,.site-guide-grid,.works-page-grid{align-items:stretch}
.v15-service-card{height:100%;grid-template-rows:auto minmax(3.6em,1fr) auto auto;align-content:start}
.v15-service-card h3{align-self:start}
.v15-service-card p{align-self:start}
.easy-strip article{height:100%}
.trust-panel,.v15-about-copy,.contact-phone-card{box-shadow:0 14px 36px rgba(27,65,44,.055)}

/* CTA の大きさを端末間でそろえる */
.primary-cta,.secondary-cta,.inline-link-button,.contact-faq-link,.hero-summary>a,.page-cta{
  min-height:48px;
}
.primary-cta,.secondary-cta{transition:transform .18s ease,background-color .18s ease,border-color .18s ease}
@media(hover:hover){
  .primary-cta:hover,.secondary-cta:hover,.inline-link-button:hover,.contact-faq-link:hover{transform:translateY(-2px)}
}

/* 入力欄はタッチ端末でも押しやすい高さに */
.calc-form input,.calc-form select{min-height:48px}
.check input{min-height:auto}
.estimate button{min-height:48px}

/* モバイルメニュー：開閉時の画面ズレを抑え、縦が短い端末でもスクロール可能に */
@media(max-width:1020px){
  .mobile-menu{
    display:flex;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-top:max(82px,calc(env(safe-area-inset-top) + 68px));
    padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 24px));
  }
  .mobile-menu.open{
    display:flex;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  .mobile-menu a{min-height:54px;justify-content:center}
  .menu-close{min-width:48px;min-height:48px;display:grid;place-items:center}
}

/* タブレット横向き・小型ノートの低い画面 */
@media(max-height:560px) and (min-width:700px) and (max-width:1020px){
  .v15-hero{
    grid-template-columns:minmax(0,1fr) minmax(280px,.82fr);
    gap:28px;
    padding-top:92px;
    padding-bottom:42px;
  }
  .v15-hero h1{font-size:clamp(38px,5.8vw,48px);margin:.18em 0}
  .v15-hero-copy>p:not(.hero-kicker){font-size:13px;line-height:1.65}
  .hero-actions{margin-top:18px}
  .hero-badges{display:none}
  .hero-summary{padding:18px;border-radius:20px}
  .hero-summary article{padding:9px 0}
  .hero-summary article strong{font-size:18px}
  .hero-summary>a{margin-top:12px;padding:10px 14px}
}

/* タブレット帯では余白を少し締める */
@media(min-width:761px) and (max-width:1020px){
  .section-pad{padding-top:90px;padding-bottom:90px}
  .compact-local{gap:42px}
  .v15-about,.v15-contact{gap:36px}
}

/* スマホでは見出しと本文の密度を合わせる */
@media(max-width:560px){
  body{font-size:15px}
  .section-en{margin-bottom:18px;font-size:11px;letter-spacing:.1em}
  .section-head{margin-bottom:32px}
  .section-head h2,.price h2,.about h2,.contact h2{font-size:clamp(30px,9vw,40px);line-height:1.35;letter-spacing:.035em}
  .v15-hero-copy>p:not(.hero-kicker){font-size:14px;line-height:1.85}
  .hero-actions{gap:9px}
  .primary-cta,.secondary-cta{padding:14px 17px}
  .easy-strip article{padding:18px}
  .calculator{border-radius:20px}
  .flow-list li{padding:20px}
  .contact-phone-card strong{letter-spacing:-.02em}
}

/* 固定CTAがホームインジケータと重ならないよう高さも含めて確保 */
@media(max-width:850px){
  .footer{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .mobile-cta a{min-height:48px;display:grid;place-items:center}
}

/* 動きを減らす設定を使っている人にはアニメーションを抑える */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}


/* v18 実写真導入 */
.brand-logo{display:inline-flex;align-items:center;gap:10px;min-width:0}.brand-logo img{width:44px;height:44px;object-fit:contain;flex:0 0 auto}.subpage-logo.brand-logo img{width:40px;height:40px}.subpage-logo.brand-logo span{font-weight:800;white-space:nowrap}
.hero-media{position:relative;min-height:600px;display:flex;align-items:flex-end;justify-content:flex-end;isolation:isolate}.hero-media:before{content:"";position:absolute;inset:8% 1% 4% 11%;border-radius:50% 45% 48% 42%;background:radial-gradient(circle at 50% 42%,rgba(238,240,189,.24),rgba(255,255,255,.035) 56%,transparent 70%);z-index:-1}.hero-person{position:absolute;right:0;bottom:0;width:min(78%,480px);height:auto;max-height:620px;object-fit:contain;object-position:bottom right;filter:drop-shadow(0 28px 36px rgba(0,0,0,.24))}.hero-media .hero-summary{position:absolute;left:0;bottom:30px;width:min(330px,64%);padding:22px;border-radius:24px;box-shadow:0 22px 50px rgba(0,0,0,.25)}.hero-media .hero-summary article{padding:12px 0}.hero-media .hero-summary article strong{font-size:19px}.hero-media .hero-summary>a{margin-top:14px}
.work-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}.work-photo-grid figure{position:relative;margin:0;border-radius:20px;overflow:hidden;min-height:210px;background:#10271b}.work-photo-grid img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .35s ease}.work-photo-grid figure:hover img{transform:scale(1.025)}.work-photo-grid figcaption{position:absolute;left:12px;bottom:12px;padding:7px 10px;border-radius:999px;background:rgba(15,39,27,.84);backdrop-filter:blur(7px);color:#fff;font-size:11px;font-weight:800}
.before-after-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}.before-after-showcase figure{position:relative;margin:0;overflow:hidden;border-radius:24px;background:#dfe5dc}.before-after-showcase img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.before-after-showcase figure>span{position:absolute;z-index:2;left:14px;top:14px;padding:8px 11px;border-radius:999px;background:#173c2a;color:#fff;font-size:11px;font-weight:800;box-shadow:0 6px 18px rgba(0,0,0,.14)}.before-after-showcase figure:last-child>span{background:#eef0bd;color:#173122}.works-note{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px;padding:22px 24px;border:1px solid var(--line);border-radius:20px;background:#fff}.works-note strong{font-size:18px}.works-note p{flex:1 1 380px;margin:0;color:var(--muted);font-size:13px}.works-note a{padding:11px 15px;border-radius:999px;background:#173c2a;color:#fff;font-size:12px;font-weight:800}
.about-person-photo{margin:30px 0 18px;max-width:410px;border-radius:24px;overflow:hidden;background:#ccd6ca}.about-person-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%}.about-person-photo figcaption{padding:13px 15px;background:#173122;color:#e9eee9;font-size:12px;line-height:1.6}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:54px;height:54px;object-fit:contain;flex:0 0 auto}.footer-brand>div{display:grid;gap:4px}
.service-photo-band{width:min(1120px,calc(100% - 2 * var(--pad)));margin:0 auto 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-photo-band.single{grid-template-columns:minmax(0,760px);justify-content:center}.service-photo-band figure{margin:0;overflow:hidden;border-radius:22px;background:#e5e8e0;border:1px solid var(--line)}.service-photo-band img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.service-photo-band figcaption{padding:12px 15px;background:#fff;font-size:12px;color:var(--muted)}.works-before-after{max-width:1000px}
@media(max-width:1020px){.hero-media{min-height:540px}.hero-person{width:min(72%,430px)}.hero-media .hero-summary{width:min(340px,62%)}}
@media(max-width:900px){.hero-media{min-height:500px;max-width:680px;width:100%;margin:0 auto}.hero-person{right:4%;width:min(67%,430px);max-height:500px}.hero-media .hero-summary{left:2%;bottom:22px;width:min(340px,58%)}.work-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-person-photo{max-width:360px}.service-photo-band{width:calc(100% - 36px)}}
@media(max-width:620px){.brand-logo img{width:38px;height:38px}.hero-media{min-height:auto;display:grid;grid-template-rows:auto auto;align-items:end;padding-top:10px}.hero-person{position:relative;right:auto;bottom:auto;justify-self:end;width:min(82%,390px);max-height:none}.hero-media .hero-summary{position:relative;left:auto;bottom:auto;width:100%;margin-top:-46px;z-index:3}.work-photo-grid{grid-template-columns:1fr 1fr;gap:9px}.work-photo-grid figure{min-height:130px;border-radius:15px}.work-photo-grid figcaption{left:8px;bottom:8px;font-size:10px}.before-after-showcase{grid-template-columns:1fr;gap:10px}.before-after-showcase figure{border-radius:18px}.works-note{align-items:flex-start;padding:19px}.works-note a{width:100%;display:flex;justify-content:space-between}.about-person-photo{max-width:none}.service-photo-band{grid-template-columns:1fr;width:calc(100% - 36px)}.footer-brand img{width:46px;height:46px}}
@media(max-width:390px){.work-photo-grid{grid-template-columns:1fr}.hero-media .hero-summary{margin-top:-30px}}
\n\n/* ========================================================================\n   v19 白いヘッダー／フッター + ビジュアル仕上げ\n   ロゴの緑が最も見やすい白を基調にし、深緑をアクセントとして統一。\n======================================================================== */\n:root{\n  --site-white:#fff;\n  --site-cream:#f8f8f3;\n  --site-green:#173c2a;\n  --site-green-deep:#103223;\n  --site-lime:#e9efb7;\n  --site-border:#e1e5dd;\n  --site-shadow:0 16px 44px rgba(24,57,38,.08);\n}\nhtml{scroll-padding-top:96px}\nsection[id]{scroll-margin-top:96px}\n::selection{background:#dfe8ad;color:#173c2a}\n\n/* --- ヘッダー：常時白で統一 --- */\n.v15-header,\n.v15-header.scrolled{\n  background:rgba(255,255,255,.97);\n  color:var(--site-green);\n  border-bottom:1px solid rgba(23,60,42,.09);\n  box-shadow:0 8px 28px rgba(24,57,38,.055);\n  backdrop-filter:blur(16px);\n  -webkit-backdrop-filter:blur(16px);\n}\n.v15-header .brand-logo{color:var(--site-green)}\n.v15-header .brand-logo img{\n  width:48px;\n  height:48px;\n  filter:drop-shadow(0 3px 7px rgba(22,52,34,.08));\n}\n.v15-header .logo-ja,\n.v15-header.scrolled .logo-ja{color:var(--site-green);font-size:14px;letter-spacing:.035em}\n.v15-header .v15-nav{background:transparent;box-shadow:none;padding:0}\n.v15-header .v15-nav a,\n.v15-header.scrolled .v15-nav a{\n  color:#263c2e;\n  background:transparent;\n  border:1px solid transparent;\n  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;\n}\n.v15-header .v15-nav a:hover,\n.v15-header .v15-nav a.active{\n  background:#f2f5ee;\n  border-color:#e3e9df;\n  color:#173c2a;\n  transform:translateY(-1px);\n}\n.v15-header .v15-nav .nav-accent,\n.v15-header.scrolled .v15-nav .nav-accent{\n  background:var(--site-green);\n  color:#fff;\n  border-color:var(--site-green);\n  padding-left:15px;\n  padding-right:15px;\n}\n.v15-header .v15-nav .nav-accent:hover{background:#214b35;color:#fff;border-color:#214b35}\n.v15-header .menu-btn,\n.v15-header.scrolled .menu-btn{\n  color:var(--site-green);\n  background:#f5f7f2;\n  border:1px solid #dde5da;\n}\n\n/* モバイルメニューも白基調へ */\n.mobile-menu{background:#f7f9f5;color:#173c2a}\n.mobile-menu a{border-color:#e1e7de;box-shadow:0 7px 22px rgba(26,63,42,.05)}\n.mobile-menu .mobile-emphasis.strong{background:var(--site-green);border-color:var(--site-green);color:#fff}\n.menu-close{color:var(--site-green)!important}\n\n/* --- 下層ページのヘッダー --- */\n.subpage-header{\n  background:rgba(255,255,255,.97);\n  border-bottom:1px solid rgba(23,60,42,.09);\n  box-shadow:0 8px 28px rgba(24,57,38,.045);\n}\n.subpage-logo{color:var(--site-green)}\n.subpage-logo.brand-logo img{width:44px;height:44px}\n.subpage-nav a{color:#304738;transition:.18s ease}\n.subpage-nav a:hover{background:#eef3eb;color:#173c2a}\n.subpage-nav a:last-child{background:var(--site-green);color:#fff}\n.subpage-nav a:last-child:hover{background:#214b35;color:#fff}\n\n/* --- トップ：人物写真と料金カードを少し上品に --- */\n.v15-hero{\n  background:\n    radial-gradient(circle at 77% 21%,rgba(232,238,181,.18),transparent 25%),\n    linear-gradient(135deg,#153624,#244a34 55%,#0e2b1e);\n}\n.hero-media:before{\n  inset:7% 0 3% 10%;\n  background:radial-gradient(circle at 52% 44%,rgba(249,248,229,.28),rgba(235,239,188,.08) 54%,transparent 71%);\n}\n.hero-person{filter:drop-shadow(0 30px 38px rgba(0,0,0,.20))}\n.hero-media .hero-summary{\n  border:1px solid rgba(23,60,42,.08);\n  box-shadow:0 24px 56px rgba(0,0,0,.20);\n}\n.hero-badges span{background:rgba(255,255,255,.095);border-color:rgba(255,255,255,.24)}\n\n/* --- セクション共通：余白・カード・背景のトーンを統一 --- */\nbody{background:var(--site-cream)}\n.easy-strip.v15-easy{background:#fff;border-bottom:1px solid #edf0ea}\n.compact-local{background:#fafbf8}\n.trust-panel,.v15-about-copy,.detail-card,.faq-item,.works-note{border-color:var(--site-border)}\n.trust-panel,.v15-about-copy,.detail-card,.faq-item{box-shadow:0 12px 34px rgba(25,62,41,.045)}\n.v15-service{background:linear-gradient(145deg,#173c2a,#0f3021)}\n.v15-service-card{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.05)}\n.v15-service-card:hover{background:rgba(255,255,255,.085);transform:translateY(-4px)}\n.work-photo-grid figure,.before-after-showcase figure,.about-person-photo{box-shadow:0 16px 38px rgba(26,62,42,.11)}\n.work-photo-grid figure{border:1px solid rgba(255,255,255,.12)}\n.work-photo-grid figcaption{box-shadow:0 5px 16px rgba(0,0,0,.12)}\n.v15-works{background:#f7f8f4}\n.price{background:#eef3e8}\n.calculator{box-shadow:0 22px 64px rgba(31,65,42,.10)}\n.flow{background:#fff}\n.flow-list li{box-shadow:0 10px 28px rgba(25,62,41,.035);border-color:#e3e8e0}\n.v15-about{background:#f0f3ed}\n.area-preview{background:#fbfbf8}\n.area-preview-tags span{box-shadow:0 5px 15px rgba(25,62,41,.035)}\n\n/* 写真は角丸と軽いズームで統一 */\n.work-photo-grid img,.before-after-showcase img,.service-photo-band img,.about-person-photo img{transition:transform .35s ease}\n@media(hover:hover){\n  .before-after-showcase figure:hover img,.service-photo-band figure:hover img,.about-person-photo:hover img{transform:scale(1.018)}\n}\n\n/* CTAを統一 */\n.inline-link-button,.contact-faq-link,.works-note a,.hero-summary>a{\n  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;\n}\n@media(hover:hover){\n  .inline-link-button:hover,.contact-faq-link:hover,.works-note a:hover,.hero-summary>a:hover{\n    box-shadow:0 10px 24px rgba(24,57,38,.12);\n  }\n}\n\n/* --- フッター：白 + 緑文字 --- */\n.footer.v15-footer{\n  background:#fff;\n  color:#173c2a;\n  border-top:1px solid #e1e6df;\n  padding-top:56px;\n  box-shadow:0 -12px 36px rgba(24,57,38,.025);\n}\n.footer.v15-footer .footer-brand img{width:60px;height:60px}\n.footer.v15-footer .footer-brand strong{font-size:15px}\n.footer.v15-footer .footer-brand span,\n.footer.v15-footer span{color:#6d7a70}\n.footer.v15-footer .footer-links{align-items:flex-start}\n.footer.v15-footer .footer-links a{\n  font-family:inherit;\n  color:#304738;\n  font-weight:700;\n  line-height:1.5;\n  padding:2px 0;\n}\n.footer.v15-footer .footer-links a:hover{color:#173c2a;text-decoration:underline;text-underline-offset:4px}\n.footer.v15-footer>div:last-of-type a{font-size:20px;font-weight:800;color:#173c2a}\n.footer.v15-footer>small{color:#849087;opacity:1}\n\n.subpage-footer{\n  background:#fff;\n  color:#294032;\n  border-top:1px solid #e1e6df;\n  box-shadow:0 -10px 32px rgba(24,57,38,.025);\n}\n.subpage-footer a{color:#173c2a;font-weight:700}\n\n/* 濃色問い合わせセクションから白フッターへ自然につなぐ */\n.v15-contact{box-shadow:inset 0 -1px 0 rgba(255,255,255,.06)}\n\n/* モバイルの仕上げ */\n@media(max-width:1020px){\n  .v15-header{height:78px}\n  .v15-header .brand-logo img{width:44px;height:44px}\n}\n@media(max-width:620px){\n  .v15-header{height:70px;padding-top:8px;padding-bottom:8px}\n  .v15-header .brand-logo img{width:40px;height:40px}\n  .v15-header .logo-ja{font-size:12px}\n  .hero-media:before{inset:6% 0 20% 7%}\n  .work-photo-grid figure,.before-after-showcase figure,.about-person-photo{box-shadow:0 12px 28px rgba(26,62,42,.09)}\n  .footer.v15-footer{padding-top:42px}\n  .footer.v15-footer .footer-brand img{width:52px;height:52px}\n}\n

/* ========================================================================
   v20 white header/footer fix + use full logo image as-is
======================================================================== */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.header.v15-header,
.header.v15-header.scrolled,
.subpage-header,
.subpage-header.scrolled,
.header,
.footer.v15-footer,
.subpage-footer,
.footer{
  background:#fff !important;
}
.header.v15-header,
.header.v15-header.scrolled,
.subpage-header{
  color:#173c2a !important;
  border-bottom:1px solid rgba(23,60,42,.10) !important;
  box-shadow:0 8px 24px rgba(23,60,42,.06) !important;
}
.footer.v15-footer,
.subpage-footer,
.footer{
  color:#173c2a !important;
  border-top:1px solid #e2e7df !important;
  box-shadow:0 -10px 28px rgba(23,60,42,.03) !important;
}
.brand-logo.brand-logo-image,
.subpage-logo.brand-logo-image{display:inline-flex;align-items:center;gap:0}
.brand-logo.brand-logo-image img,
.subpage-logo.brand-logo-image img{
  width:82px !important;
  height:82px !important;
  object-fit:contain;
  filter:none !important;
}
.v15-header .logo-ja{display:none !important}
.v15-header{height:104px !important}
@media (max-width:1020px){
  .v15-header{height:88px !important}
  .brand-logo.brand-logo-image img,
  .subpage-logo.brand-logo-image img{width:68px !important;height:68px !important}
}
@media (max-width:620px){
  .v15-header{height:78px !important}
  .brand-logo.brand-logo-image img,
  .subpage-logo.brand-logo-image img{width:58px !important;height:58px !important}
}
.footer-brand.footer-brand-full{align-items:flex-start;gap:14px}
.footer-brand.footer-brand-full img{width:110px !important;height:110px !important;object-fit:contain;filter:none !important}
.footer-brand.footer-brand-full > div{display:block}
.footer-brand.footer-brand-full strong{display:none !important}
.footer-brand.footer-brand-full span{display:block;color:#667064 !important;margin-top:4px}
.v15-header .brand-logo,
.subpage-logo{min-width:0}
.v15-header .v15-nav a,
.subpage-nav a{color:#294032 !important}
.v15-header .v15-nav .nav-accent,
.subpage-nav a:last-child{background:#173c2a !important;color:#fff !important;border-color:#173c2a !important}
.mobile-menu{background:#fff !important;color:#173c2a !important}
.mobile-menu a{background:#fff !important;border:1px solid #e2e7df !important;color:#173c2a !important}
.mobile-menu .mobile-emphasis.strong{background:#173c2a !important;color:#fff !important;border-color:#173c2a !important}
.menu-close,.v15-header .menu-btn,.v15-header.scrolled .menu-btn{color:#173c2a !important;background:#f6f8f5 !important;border:1px solid #dfe6dc !important}


/* ========================================================================
   v21: larger full logo + weather notice
======================================================================== */
/* Full logo image is used as-is; no separate visible text is shown below it. */
.v15-header .brand-logo-image > span,
.subpage-header .brand-logo-image > span{display:none!important}

.v15-header{height:132px!important;padding-top:8px!important;padding-bottom:8px!important}
.brand-logo.brand-logo-image img,
.subpage-logo.brand-logo-image img{
  width:126px!important;
  height:126px!important;
  object-fit:contain!important;
  filter:none!important;
}
.subpage-header{min-height:116px;padding-top:6px;padding-bottom:6px}

.weather-notice{
  width:min(1180px,calc(100% - 48px));
  margin:28px auto 0;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:start;
  padding:20px 24px;
  background:#fff9df;
  border:1px solid #eadb9d;
  border-radius:20px;
  box-shadow:0 10px 28px rgba(74,66,30,.06);
  color:#3d3a27;
}
.weather-notice-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f4e7a9;
  font-size:21px;
  line-height:1;
}
.weather-notice strong{display:block;font-size:16px;line-height:1.55;color:#2f3328}
.weather-notice p{margin:5px 0 0;font-size:13px;line-height:1.8;color:#6d6650}
.faq-weather{border-color:#eadb9d!important;background:#fffdf2!important}

@media(max-width:1020px){
  .v15-header{height:108px!important}
  .brand-logo.brand-logo-image img,
  .subpage-logo.brand-logo-image img{width:100px!important;height:100px!important}
  .subpage-header{min-height:98px}
}
@media(max-width:620px){
  .v15-header{height:92px!important;padding-top:4px!important;padding-bottom:4px!important}
  .brand-logo.brand-logo-image img,
  .subpage-logo.brand-logo-image img{width:82px!important;height:82px!important}
  .subpage-header{min-height:84px}
  .weather-notice{width:calc(100% - 28px);margin-top:18px;padding:17px 16px;gap:12px;border-radius:16px}
  .weather-notice-icon{width:36px;height:36px;font-size:18px}
  .weather-notice strong{font-size:14px}
  .weather-notice p{font-size:12px;line-height:1.7}
}
