:root{--bg:#faf7ef;--ink:#294754;--blue:#32718b;--orange:#da7240}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Yu Gothic",Meiryo,sans-serif;line-height:1.9}a{color:inherit;text-decoration:none}a:hover{color:var(--orange)}a:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.wrap{width:min(1120px,90%);margin:auto}.preview{text-align:center;background:var(--ink);color:white;font-size:12px;padding:5px}.head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0}header{border-bottom:1px solid #e4dfd4}.brand{font-family:Georgia,serif;font-size:28px;font-weight:bold;line-height:1.3}.brand small{display:block;font-family:Meiryo,sans-serif;font-size:10px;letter-spacing:.12em}.brand b{color:var(--orange)}nav{display:flex;gap:20px;font-size:13px;font-weight:bold}nav a[aria-current]{color:var(--orange);border-bottom:2px solid var(--orange)}.menu{display:none;padding:9px;background:none;border:1px solid #c5c9bd;border-radius:5px;color:var(--ink)}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:45px;align-items:center;padding:65px 0}.eyebrow{color:var(--orange);font-size:12px;letter-spacing:.18em;font-weight:bold}h1{font-size:clamp(30px,3.8vw,48px);line-height:1.6;letter-spacing:.02em;margin:20px 0}h2{font-size:30px;line-height:1.6;margin:12px 0 20px}h3{font-size:21px;line-height:1.6}p{margin:12px 0}.lead{color:#62747a;font-size:15px}.art{width:100%;border-radius:130px 130px 15px 15px;background:#eee8d8}.caption{font-size:11px;color:#697a7d;text-align:right}.button{display:inline-block;background:var(--blue);color:white!important;padding:12px 25px;border-radius:5px;font-size:14px;font-weight:bold;margin-top:20px}.button:hover{background:#27576b}.orange{background:var(--orange)}.section{padding:62px 0}.soft{background:#eeebe1}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:30px}.card{background:#fffdf8;border:1px solid #e1ded3;padding:29px;border-radius:10px;display:flex;flex-direction:column}.card p{font-size:14px;color:#62747a}.card a{color:var(--blue);font-size:14px;font-weight:bold;margin-top:auto;padding-top:20px}.card small{font-size:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.quote{border-left:3px solid var(--orange);padding:35px;background:#fffdf8;font-size:25px}.note{background:#e9e4d8;color:#62747a;font-size:12px;padding:14px 18px;border-radius:5px;margin-top:25px}.recruit{padding:38px;background:#e4ece7;border-radius:12px}.contact{background:var(--blue);color:white;padding:43px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:25px}.contact h2{font-size:26px}.phone{font-family:Georgia,serif;font-size:35px;white-space:nowrap}.contact a:hover{color:#f5d0a7}.contact small{display:block;font-size:12px}.subhero{padding:42px 0;border-bottom:1px solid #e4dfd4}.crumb{font-size:12px;color:#62747a;margin-bottom:22px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:30px}.step{border-top:1px solid var(--blue);padding-top:20px}.step span{font-family:Georgia,serif;font-size:30px;color:var(--orange)}.step p{font-size:14px;color:#62747a}.list{list-style:none;padding:0}.list li{border-bottom:1px solid #d8d9ce;padding:16px 0}.list li:before{content:"●";font-size:9px;color:var(--orange);margin-right:12px}dl>div{display:grid;grid-template-columns:170px 1fr;border-bottom:1px solid #d8d9ce;padding:18px 0}dt{font-weight:bold}dd{margin:0}footer{border-top:1px solid #e4dfd4;padding:45px 0 22px}.footer-row{display:flex;justify-content:space-between;gap:35px}.footer-row p{font-size:13px}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px;font-size:12px}.copyright{border-top:1px solid #e4dfd4;margin-top:28px;padding-top:15px;font-size:11px;color:#62747a}.skip{position:absolute;top:-100px;background:white;padding:10px}.skip:focus{top:5px;z-index:5}@media(max-width:950px){.head{flex-wrap:wrap}nav{width:100%;justify-content:space-between;gap:10px}.hero{gap:25px}.card{padding:22px}.split{gap:30px}}@media(max-width:640px){.menu{display:block}nav{display:none;flex-direction:column}nav.open{display:flex}nav a{padding:8px 0}.hero,.split,.cards,.steps{grid-template-columns:1fr}.hero{padding:35px 0}h1{font-size:32px}h2{font-size:26px}.section{padding:40px 0}.art{max-height:340px}.contact,.footer-row{display:block}.contact{padding:27px}.contact>div+div{margin-top:25px}.phone{font-size:30px}.footer-nav{margin-top:25px}dl>div{grid-template-columns:1fr;gap:7px}.quote{padding:25px;font-size:22px}.preview{font-size:10px}.recruit{padding:25px}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* Photo slots: replace image src/alt; adjust --photo-position for each official photo. */
.photo-slot{margin:0;min-width:0;--photo-position:50% 50%}
.photo-frame{overflow:hidden;aspect-ratio:4/3;border-radius:60px 60px 12px 12px;background:#eee8dc;border:1px solid #ddd9ce}
.photo-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-position)}
.photo-slot figcaption{padding:12px 3px 0;line-height:1.6}
.photo-label{display:block;color:var(--blue);font-size:13px;font-weight:bold}
.photo-scene{display:block;color:var(--ink);font-size:12px;margin-top:3px}
.photo-slot figcaption small{display:block;font-size:10px;color:#62747a;margin-top:4px}
.photo-montage{display:grid;gap:18px;min-width:0}
.photo-main .photo-frame{aspect-ratio:16/10;border-radius:80px 80px 12px 12px}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.photo-mini .photo-frame{aspect-ratio:16/10;border-radius:12px}
.photo-mini .photo-scene{font-size:11px}
.photo-card{margin:18px 0 0}
.photo-card .photo-frame{aspect-ratio:16/10;border-radius:8px}
.photo-card .photo-label,.photo-card .photo-scene{display:none}
.photo-card figcaption{padding-top:6px}
@media(max-width:640px){.photo-frame{border-radius:35px 35px 10px 10px}.photo-main .photo-frame{border-radius:45px 45px 10px 10px}.photo-pair{gap:12px}.photo-mini .photo-label{font-size:12px}}
/* Official header logo: preserve source aspect ratio and limit mobile width. */
.head .official-brand{display:block;flex-shrink:0;line-height:0}
.head .brand-logo{display:block;width:clamp(190px,22vw,250px);max-width:100%;height:auto}
@media(max-width:640px){.head .brand-logo{width:190px}}
/* Transparent official logo shared by header and footer. */
footer .official-brand{display:block;width:fit-content;max-width:100%;line-height:0;background:transparent}
footer .brand-logo{display:block;width:clamp(190px,22vw,250px);max-width:100%;height:auto;background:transparent}
.head .official-brand,.head .brand-logo{background:transparent}
@media(max-width:640px){footer .brand-logo{width:190px}}
/* Display the complete replacement logo without CSS framing or cropping. */
.head .brand-logo,footer .brand-logo{height:auto;object-fit:contain;border:0;border-radius:0;padding:0;margin:0;box-shadow:none}
/* Brighter shared palette and readable Japanese typography. */
:root{--bg:#fffaf2;--ink:#253f4a;--blue:#246d88;--orange:#b95126;--muted:#465e68;--line:#e4d9ca}
body{font-family:"BIZ UDPGothic","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:16px;line-height:1.95}
header{background:#fffdf8;border-bottom-color:var(--line)}
h1,h2,h3{color:#203f4e;font-weight:700;overflow-wrap:anywhere}
.hero{background:radial-gradient(ellipse at 15% 15%,#ffefda88,transparent 65%)}
.subhero{background:linear-gradient(115deg,#fff1de 0%,#fffaf3 55%,#edf6f8 100%);border-bottom-color:var(--line)}
.soft{background:#fff1e2}
.lead,.card p,.step p,.crumb,.caption,.copyright{color:var(--muted)}
.lead{font-size:16px}
.card{background:#fffefa;border-color:#e5d5c4;box-shadow:0 5px 20px #70552a09}
.card p{font-size:15px}
.card small{color:var(--muted);font-size:13px}
.eyebrow{color:var(--orange)}
.button{background:var(--blue);box-shadow:0 3px 9px #20495a12;font-size:15px}
.button:hover{background:#1c566c}
.button.orange{background:var(--orange)}
.button.orange:hover{background:#993f1c}
.quote{background:#fffdf9;border-left-color:#e9924d}
.note{background:#f8ebd9;color:#405762;font-size:13px}
.recruit{background:linear-gradient(115deg,#e8f4ee,#eef5f9)}
.contact{background:linear-gradient(115deg,#246d88,#245c76)}
.contact h2,.contact h3{color:#fff}
.contact .note{color:#314d5a}
.photo-label{color:#225e77}
.photo-scene,.photo-slot figcaption small{color:#465e68}
.photo-frame{background:#fff7eb;border-color:#e3d6c5}
footer{background:#fff5e7;border-top-color:#e5d5c4}
.footer-row p{color:#344e59;font-size:14px;line-height:1.95}
.footer-nav{font-size:13px;color:#304d5b}
.footer-tagline{display:block;font-size:17px;font-weight:600;line-height:1.8;margin:10px 0 8px;max-width:100%}
.copyright{border-top-color:#e2d4c2;font-size:12px}
.subhero [data-service-tagline]{font-size:19px;line-height:1.85;color:#304e5e;font-weight:600;margin-top:15px}
.service-emblem{display:block;width:132px;max-width:100%;margin:18px 0;background:#fffdf7;border:1px solid #eadcc7;border-radius:14px;padding:9px}
.service-emblem img{display:block;width:100%;height:auto;object-fit:contain}
@media(max-width:640px){
 .footer-tagline{font-size:16px}
 .subhero [data-service-tagline]{font-size:18px}
 .service-emblem{width:112px;margin:16px 0}
 .card p{font-size:15px}
 .head,.split,.hero,.card{min-width:0}
}
/* Shared SUN'S service presentation, scoped to the three service pages. */
.service-page{background:#fffdf7;color:#253f4f}
.service-page .subhero{background:linear-gradient(115deg,#fff3df 0%,#fffdf8 52%,#edf9fc 100%);padding:48px 0;border-bottom-color:#e6e0d3}
.service-page .soft{background:linear-gradient(110deg,#fff6e8,#f0f9fb)}
.service-page .section{padding-top:68px;padding-bottom:68px}
.service-page main h2,.service-page main h3{color:#24556c}
.service-page .contact h2,.service-page .contact h3{color:#fff}
.service-page .eyebrow{color:#b45121}
.service-page .contact .eyebrow{color:#ffdbb8}
.service-page .note{background:#fff0d9;color:#334f60}
.service-page .subhero [data-service-tagline]{font-size:21px;line-height:1.85;color:#294f64;font-weight:600;margin-top:16px}
.service-title-row{display:flex;align-items:center;gap:14px;margin:20px 0;min-width:0;max-width:100%}
.service-title-row h1{margin:0;min-width:0;flex:1;font-size:clamp(28px,3.5vw,44px);line-height:1.6}
.service-title-logo{display:block;width:115px;height:auto;flex:0 0 auto;object-fit:contain;background:transparent;border:0;border-radius:0;padding:0;margin:0;box-shadow:none}
/* Local font fallback only: no external font download. */
a[href="tel:0862063100"],.phone{font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-weight:700;letter-spacing:normal;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.phone{font-size:clamp(26px,3vw,34px);line-height:1.5}
@media(max-width:640px){
 .service-page .subhero{padding:34px 0}
 .service-page .section{padding-top:44px;padding-bottom:44px}
 .service-title-row{gap:8px;margin:18px 0}
 .service-title-logo{width:75px}
 .service-title-row h1{font-size:clamp(23px,5.5vw,28px);line-height:1.6}
 .service-page .subhero [data-service-tagline]{font-size:19px;line-height:1.85;overflow-wrap:anywhere}
 .phone{font-size:26px}
}
/* Final pre-publication adjustments: preserve source images and brand artwork. */
.hero>div,.split>div,.contact>div,.footer-row>div{min-width:0}
.contact>div{flex:1}
.contact .button{max-width:100%;text-align:center}
.contact .phone{font-size:clamp(22px,2.5vw,32px)}
.button{min-height:44px;overflow-wrap:anywhere}
.menu{min-width:92px;min-height:44px;font:inherit;line-height:1.5;cursor:pointer}
.footer-nav a{display:flex;align-items:center;min-height:44px}
#main-nav a{display:flex;align-items:center;min-height:44px}
.photo-slot figcaption small{font-size:12px}
@media(min-width:641px) and (max-width:950px){
 #main-nav{flex-wrap:wrap;justify-content:flex-start;column-gap:20px}
 .contact{flex-direction:column;align-items:stretch}
 .footer-row{flex-wrap:wrap}
}
@media(max-width:640px){
 .contact .phone{font-size:clamp(21px,6vw,26px)}
 .head{gap:12px;padding:20px 0}
 .contact{padding:24px}
 .photo-pair{grid-template-columns:1fr}
 .service-title-logo{width:64px}
 .service-title-row h1{font-size:clamp(22px,5.5vw,28px);word-break:normal;line-break:strict}
}