:root{--ink:#1d2730;--muted:#64717b;--line:#dbe2e7;--bg:#f6f8f9;--white:#fff;--accent:#31566d;--accent2:#53778b;--dark:#17232c;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.85;background:var(--white)}a{color:inherit}.container{width:min(var(--max),calc(100% - 40px));margin:auto}.narrow{max-width:920px}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:25px}.logo{font-weight:800;letter-spacing:.04em;text-decoration:none;font-size:1.1rem}.nav nav{display:flex;gap:20px;align-items:center;font-size:.84rem}.nav nav a{text-decoration:none}.nav-contact{padding:8px 14px;border:1px solid var(--ink);border-radius:999px}.hero{background:linear-gradient(135deg,#f5f8fa,#eaf0f3);min-height:650px;display:flex;align-items:center}.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;padding:80px 0}.eyebrow,.section-label{font-size:.72rem;letter-spacing:.18em;font-weight:800;color:var(--accent);margin:0 0 12px}.hero h1{font-size:clamp(2.3rem,5vw,4.5rem);line-height:1.25;margin:0 0 24px;letter-spacing:-.04em}.hero h1 span{color:var(--accent)}.lead{font-size:1.08rem;color:#44525c;max-width:680px}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.button{display:inline-block;padding:12px 22px;border-radius:5px;text-decoration:none;border:1px solid var(--ink);font-weight:700;cursor:pointer;font:inherit}.button.primary{background:var(--ink);color:#fff}.button.secondary{background:#fff}.hero-points{display:flex;gap:9px;flex-wrap:wrap}.hero-points span{border:1px solid #b9c5cc;padding:5px 10px;border-radius:999px;font-size:.76rem;background:#fff}.hero-visual{min-height:400px;position:relative;display:grid;place-items:center}.server-rack{width:250px;background:#26343d;padding:15px 18px 22px;border-radius:7px;box-shadow:0 25px 60px rgba(35,50,60,.2);transform:perspective(700px) rotateY(-8deg)}.rack-top{color:#d9e3e8;font-size:.7rem;letter-spacing:.15em;padding-bottom:12px}.rack-unit{height:67px;background:#101a21;border:1px solid #4b5a63;margin:7px 0;display:flex;align-items:center;padding:0 12px;gap:10px}.rack-unit i{width:8px;height:8px;border-radius:50%;background:#a7bac4}.rack-unit b{width:35px;height:3px;background:#6c818d}.rack-unit em{font-style:normal;color:#b9c9d0;font-size:.62rem;letter-spacing:.12em;margin-left:auto}.rack-base{height:10px}.signal{position:absolute;background:#fff;border:1px solid #c9d3d8;padding:8px 12px;border-radius:4px;font-weight:800;font-size:.7rem;box-shadow:0 8px 24px rgba(30,50,60,.1)}.signal-a{top:18%;right:5%}.signal-b{left:5%;top:48%}.signal-c{right:8%;bottom:17%}.trust-bar{border-bottom:1px solid var(--line);background:#fff}.trust-inner{display:flex;justify-content:space-between;gap:30px;padding:18px 0;font-size:.86rem;color:var(--muted)}.trust-inner p{margin:0}.trust-inner strong{color:var(--ink);margin-right:8px}.section{padding:95px 0}.section.alt{background:var(--bg)}.section h2,.contact h2{font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.35;margin:0 0 30px;letter-spacing:-.03em}.lead-text{font-size:1.2rem;color:#394b57}.section p{margin-top:0}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}.benefit-grid article,.equipment-card,.sla-card,.flow-item,.strength{border:1px solid var(--line);background:#fff;padding:25px;border-radius:5px}.benefit-grid span,.flow-item>span{font-weight:800;color:var(--accent);font-size:.8rem}.benefit-grid h3{font-size:1rem;line-height:1.5;margin:10px 0}.benefit-grid p{font-size:.86rem;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);padding:28px;min-height:180px}.card h3{margin-top:0}.card p{color:var(--muted);font-size:.92rem}.section-note{color:var(--muted);margin-top:-10px;margin-bottom:30px}.equipment-grid{display:grid;grid-template-columns:1.3fr .9fr .9fr;gap:18px}.equipment-card h3{margin-top:0}.equipment-card ul{margin:0;padding-left:1.1em}.equipment-card li{padding:3px 0;font-size:.9rem}.sla-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.sla-card{position:relative}.sla-card.featured{border-color:#aebdc5}.sla-name{font-size:.8rem;letter-spacing:.14em;font-weight:800;color:var(--accent);text-transform:uppercase}.sla-card h3{font-size:1.15rem;margin:10px 0}.sla-card small{color:var(--muted);display:block}.sla-note{font-size:.82rem;color:var(--muted);margin-top:20px}.flow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.flow-item h3{font-size:1rem;margin:8px 0}.flow-item p{font-size:.86rem;color:var(--muted)}.info-box{margin-top:22px;padding:22px;border-left:4px solid var(--accent);background:#f0f4f6}.info-box p{margin:5px 0 0;font-size:.88rem}.strength-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.strength{background:transparent}.strength.local{background:#fff}.strength strong{font-size:1.05rem}.strength p{color:var(--muted);font-size:.9rem;margin:7px 0 0}.profile{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:start}.representative{font-size:1.5rem;margin:0 0 20px}.profile-box{border:1px solid var(--line);padding:28px}.profile-box h3{margin-top:0}.profile-box ul{margin:0;padding-left:1.1em}.profile-box li{padding:3px 0}.area-main{font-size:1.35rem;font-weight:800}.qr-section{padding:65px 0;background:#edf2f4}.qr-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}.qr-inner img{background:#fff;padding:10px;border:1px solid var(--line)}.contact{padding:95px 0;background:#1d2931;color:#fff}.contact .section-label{color:#b8cbd4}.contact-inner>p:not(.section-label){color:#c6d1d7}.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:35px;margin-top:30px}.contact-form-wrap{background:#fff;color:var(--ink);padding:30px}.form-row{margin-bottom:18px}.form-row label{display:block;font-weight:700;font-size:.86rem;margin-bottom:6px}.form-row label span{font-weight:400;color:var(--muted);font-size:.75rem;margin-left:5px}.form-row label b{color:#9a3c3c}.form-row input,.form-row select,.form-row textarea{width:100%;padding:11px;border:1px solid #cbd4d9;border-radius:3px;font:inherit;background:#fff}.form-row textarea{resize:vertical}.privacy{display:flex;gap:9px;font-size:.78rem;margin:15px 0}.privacy input{margin-top:6px}.submit{width:100%}.form-note{font-size:.72rem;color:var(--muted);margin:12px 0 0}.contact-side{border:1px solid #52636d;padding:28px;align-self:start}.contact-side h3{font-size:.9rem;margin:0 0 7px;color:#d8e2e7}.mail-link,.phone-link{font-size:1.05rem;font-weight:800;color:#fff;text-decoration:none}.phone-link{line-height:2}.hours{margin-top:24px}.notice{font-size:.8rem;color:#c6d1d7}.footer-inner{padding:35px 0;display:grid;grid-template-columns:1.3fr 1fr auto;gap:25px;align-items:end}.footer-inner p{margin:5px 0;color:var(--muted);font-size:.78rem}.footer-links{display:flex;gap:12px;flex-wrap:wrap}.footer-links a{font-size:.76rem;color:var(--muted)}.copyright{white-space:nowrap}.legal{padding:10px 0 85px}.legal h1{font-size:2.3rem}.legal-image{width:100%;height:auto;display:block;margin:0 0 28px;border:1px solid var(--line);border-radius:6px}.legal h2{font-size:1.3rem;border-left:4px solid var(--accent);padding-left:12px;margin-top:40px}.legal table{width:100%;border-collapse:collapse}.legal th,.legal td{border:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}.legal th{width:28%;background:var(--bg)}.updated{color:var(--muted);font-size:.85rem}
@media(max-width:900px){.nav nav a:not(.nav-contact){display:none}.hero-inner,.profile,.contact-grid{grid-template-columns:1fr}.hero{min-height:auto}.hero-inner{padding:65px 0}.hero-visual{min-height:300px}.benefit-grid{grid-template-columns:repeat(2,1fr)}.equipment-grid{grid-template-columns:1fr 1fr}.equipment-card:first-child{grid-column:1/-1}.cards{grid-template-columns:1fr 1fr}.flow-grid{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr 1fr}.qr-inner{align-items:flex-start}}
@media(max-width:620px){.container{width:min(var(--max),calc(100% - 28px))}.nav{min-height:62px}.nav-contact{font-size:.76rem}.hero h1{font-size:2.35rem}.hero-buttons .button{width:100%;text-align:center}.hero-visual{min-height:250px}.server-rack{width:210px}.signal-a{right:0}.signal-b{left:0}.signal-c{right:0}.trust-inner{display:block}.trust-inner p+p{margin-top:8px}.section{padding:65px 0}.benefit-grid,.cards,.equipment-grid,.sla-grid,.strength-grid,.flow-grid{grid-template-columns:1fr}.equipment-card:first-child{grid-column:auto}.qr-inner{display:grid;grid-template-columns:1fr}.qr-inner img{justify-self:center}.contact-form-wrap{padding:20px}.footer-inner{grid-template-columns:1fr}.copyright{white-space:normal}}

/* ===== Refined visual design ===== */
:root{--ink:#1d2b34;--muted:#61727d;--line:#d8e2e7;--bg:#f3f7f8;--white:#fff;--accent:#2f657d;--accent2:#6d98aa;--accent-soft:#e6f0f3;--warm:#8b6b3e;--dark:#172a34}
body{background:#fff}
.site-header{box-shadow:0 2px 16px rgba(28,55,67,.06)}
.logo{color:var(--dark)}
.nav-contact{background:var(--accent-soft);border-color:#b7cdd5;color:#244e60}
.hero{background:linear-gradient(135deg,#f4f8f9 0%,#e4eef2 58%,#dce9ed 100%)}
.hero h1 span{color:var(--accent)}
.hero-visual{background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.9),rgba(255,255,255,0) 62%)}
.server-rack{background:linear-gradient(180deg,#2c424d,#1c2b34);box-shadow:0 28px 65px rgba(33,57,68,.22)}
.rack-top{color:#dbe9ee}
.rack-unit{border-color:#58707c;background:#14222a}
.rack-unit b{background:#6f9aaa}
.partner-message{padding:72px 0;background:#fff;border-bottom:1px solid var(--line)}
.partner-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center}
.partner-copy h2{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.45;margin:0 0 20px;letter-spacing:-.03em}
.partner-copy p:not(.section-label){color:#536670}
.section-heading-with-image{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:30px}
.section-heading-with-image h2{margin-bottom:0}
.mini-visual{width:210px;max-width:36%;height:auto;border-radius:18px;box-shadow:0 10px 28px rgba(37,65,77,.08)}
.section-visual{width:100%;max-width:390px;height:auto;border-radius:22px;box-shadow:0 16px 38px rgba(37,65,77,.10)}
.benefit-grid article{border-top:4px solid #7ea6b5;box-shadow:0 8px 24px rgba(40,67,78,.05)}
.benefit-tag,.step-label{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--accent-soft);color:#2d6075;font-weight:800;font-size:.75rem;letter-spacing:.02em}
.cards .card{border-radius:12px;box-shadow:0 8px 24px rgba(40,67,78,.05);border-top:4px solid #8eb1bd}
.cards .card:nth-child(2){border-top-color:#9d8964}
.cards .card:nth-child(3){border-top-color:#6f98a9}
.cards .card:nth-child(4){border-top-color:#799b8d}
.cards .card:nth-child(5){border-top-color:#8c7ea2}
.equipment-card{border-radius:12px;box-shadow:0 8px 24px rgba(40,67,78,.05)}
.equipment-card h3{color:#2e5f73}
.sla-grid{align-items:stretch}
.sla-card{border-radius:14px;overflow:hidden;padding:0 28px 28px;box-shadow:0 10px 30px rgba(35,63,74,.07);border:1px solid var(--line)}
.sla-card .sla-name{margin:0 -28px 22px;padding:12px 28px;font-size:.9rem;letter-spacing:.12em;color:#fff}
.sla-card.premium{border:2px solid #7a9eae}
.sla-card.premium .sla-name{background:#2f657d}
.sla-card.standard{border-top:5px solid #718f9c}
.sla-card.standard .sla-name{background:#597d8c}
.sla-card.light{border-top:5px solid #9aab93}
.sla-card.light .sla-name{background:#71866d}
.sla-card.percall{border-top:5px solid #9b896a}
.sla-card.percall .sla-name{background:#857254}
.sla-card h3{color:#203b47}
.flow-item{border-radius:12px;box-shadow:0 8px 22px rgba(40,67,78,.04)}
.flow-item .step-label{background:#edf4f6;color:#2f657d}
.info-box{border-left-color:#6e98a8;background:#edf4f6;border-radius:0 10px 10px 0}
.service-notes{background:#f8faf9}
.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.note-card{background:#fff;border:1px solid var(--line);border-left:4px solid #8aa9a5;border-radius:10px;padding:22px;box-shadow:0 8px 22px rgba(40,67,78,.04)}
.note-card:nth-child(2){border-left-color:#829cad}.note-card:nth-child(3){border-left-color:#a18c68}.note-card:nth-child(4){border-left-color:#6d98aa}
.note-card strong{display:block;margin-bottom:6px;color:#294956}.note-card p{margin:0;color:var(--muted);font-size:.9rem}
.strength{border-radius:12px;box-shadow:0 8px 22px rgba(40,67,78,.04)}
.strength.local{border:2px solid #8eacb7;background:#eef5f7}
.profile-box{border-radius:12px;background:#f7fafb;box-shadow:0 8px 24px rgba(40,67,78,.05)}
.area{position:relative}.area-main{color:#2c6176}
.qr-section{background:linear-gradient(135deg,#edf4f6,#e8f0f1)}
.contact{background:linear-gradient(135deg,#1d2e37,#233d49)}
.contact-form-wrap{border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.15)}
.contact-side{border-color:#66818e;border-radius:12px;background:rgba(255,255,255,.03)}
.footer-inner{align-items:start}
.footer-links{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.footer-links a{display:block;padding:7px 11px;border:1px solid var(--line);border-radius:7px;text-decoration:none;background:#f8fafb;color:#536873}
.footer-links a:hover{background:var(--accent-soft);color:#2d6075}
.back-to-top{position:fixed;right:22px;bottom:22px;z-index:30;width:52px;height:52px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;background:#2f657d;color:#fff;box-shadow:0 8px 22px rgba(25,58,71,.24);font-weight:800;line-height:1;transition:transform .2s,opacity .2s}
.back-to-top:hover{transform:translateY(-3px)}
.back-to-top span{font-size:.55rem;letter-spacing:.08em;margin-top:4px}
.legal .legal-image{background:#f3f7f8}
.legal h2{border-left-color:#6d98aa}
@media(max-width:900px){.partner-inner{grid-template-columns:1fr}.section-visual{max-width:430px;justify-self:center}.mini-visual{max-width:30%}}
@media(max-width:620px){.section-heading-with-image{align-items:flex-start}.mini-visual{width:120px;max-width:120px}.notes-grid{grid-template-columns:1fr}.back-to-top{right:14px;bottom:14px;width:48px;height:48px}.footer-links{width:100%}.footer-links a{width:100%}}

/* ===== V3: photographic visual direction + calm blue/green palette ===== */
:root{
  --ink:#20323b;
  --muted:#64757d;
  --line:#d5e0e4;
  --bg:#f2f7f6;
  --white:#fff;
  --accent:#2d667c;
  --accent2:#6b9a91;
  --green:#5d8b80;
  --blue-soft:#e5f0f4;
  --green-soft:#e7f1ee;
  --dark:#172b34;
}
body{color:var(--ink)}
.hero{background:linear-gradient(120deg,#eef5f7 0%,#e6f0f2 55%,#e5f0eb 100%)}
.hero h1 span{color:var(--accent)}
.hero-visual.photo-hero{display:block;min-height:440px;border-radius:20px;overflow:hidden;position:relative;box-shadow:0 24px 60px rgba(35,66,78,.16);background:#dfe9eb}
.hero-photo{width:100%;height:440px;object-fit:cover;display:block;filter:saturate(.82) contrast(1.02)}
.hero-photo-caption{position:absolute;left:22px;right:22px;bottom:22px;padding:16px 18px;border-radius:10px;background:rgba(20,39,48,.78);backdrop-filter:blur(8px);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:15px}
.hero-photo-caption strong{font-size:.88rem;letter-spacing:.04em}.hero-photo-caption span{font-size:.72rem;color:#d5e4e8}
.partner-message{background:#fff}
.section-visual{height:310px;object-fit:cover;filter:saturate(.82);border-radius:18px}
.mini-visual{height:135px;object-fit:cover;filter:saturate(.78);border-radius:14px}
.section-heading-with-image{align-items:center}
.section-heading-with-image .mini-visual{border:1px solid var(--line)}
.benefit-grid article{border-top-color:var(--accent);background:linear-gradient(180deg,#fff,#f8fbfb)}
.benefit-grid article:nth-child(2){border-top-color:var(--green)}
.benefit-grid article:nth-child(3){border-top-color:#7894a1}
.benefit-grid article:nth-child(4){border-top-color:#7f9b91}
.cards .card{background:#fff}
.cards .card:nth-child(2),.cards .card:nth-child(4){background:#f7fbfa}
.sla-card.premium{background:linear-gradient(180deg,#f0f7fa,#fff)}
.sla-card.standard{background:linear-gradient(180deg,#f4f8fa,#fff)}
.sla-card.light{background:linear-gradient(180deg,#f1f7f4,#fff)}
.sla-card.percall{background:linear-gradient(180deg,#f8f7f2,#fff)}
.image-strip{margin-top:38px;display:grid;grid-template-columns:1.35fr .65fr;min-height:240px;border-radius:16px;overflow:hidden;background:#18313b;box-shadow:0 14px 34px rgba(35,66,78,.10)}
.image-strip img{width:100%;height:100%;min-height:240px;object-fit:cover;filter:saturate(.7)}
.image-strip div{padding:34px;color:#fff;display:flex;flex-direction:column;justify-content:center}
.image-strip strong{font-size:1.35rem;line-height:1.5}.image-strip p{color:#c8d8dc;font-size:.9rem}
.service-notes{background:linear-gradient(135deg,#f4f8f7,#f1f6f8)}
.strength.local{border-color:#77a194;background:linear-gradient(135deg,#eef6f3,#f8fbfa)}
.area{background:linear-gradient(90deg,transparent 0%,rgba(74,133,119,.04) 100%);padding:20px;border-radius:14px}
.footer-inner{grid-template-columns:1fr 1.7fr auto}
.footer-policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.footer-policy-card{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fbfb;text-decoration:none;min-height:78px}
.footer-policy-card strong{font-size:.78rem;color:#315e6d}.footer-policy-card span{font-size:.66rem;line-height:1.5;color:var(--muted)}
.footer-policy-card:hover{background:var(--blue-soft);border-color:#b7ced5}
.footer-meta{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.image-credit{font-size:.62rem!important;white-space:nowrap}
.legal-image{height:240px;object-fit:cover;filter:saturate(.8)}
@media(max-width:900px){.hero-visual.photo-hero{min-height:330px}.hero-photo{height:330px}.footer-inner{grid-template-columns:1fr}.footer-meta{align-items:flex-start}.footer-policy-grid{grid-template-columns:1fr 1fr}.image-strip{grid-template-columns:1fr}.image-strip div{min-height:180px}}
@media(max-width:620px){.hero-visual.photo-hero{min-height:270px}.hero-photo{height:270px}.hero-photo-caption{display:block}.hero-photo-caption span{display:block;margin-top:4px}.section-visual{height:230px}.mini-visual{height:105px}.footer-policy-grid{grid-template-columns:1fr}.image-credit{white-space:normal}}

/* v4 local photo gallery and restrained blue/green palette */
:root{--brand-blue:#1f5f8f;--brand-blue-deep:#123e62;--brand-green:#3f7f62;--brand-green-soft:#eaf4ee;--brand-blue-soft:#eaf2f8}
.hero-photo,.section-visual,.mini-visual,.legal-image{object-fit:cover}
.photo-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:36px}
.photo-gallery article{position:relative;overflow:hidden;border-radius:10px;background:#102b40;box-shadow:0 8px 24px rgba(22,55,75,.10)}
.photo-gallery img{display:block;width:100%;height:170px;object-fit:cover;transition:transform .35s ease}
.photo-gallery article:hover img{transform:scale(1.04)}
.photo-gallery article div{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(8,25,38,.88));color:#fff}
.photo-gallery strong,.photo-gallery span{display:block}.photo-gallery strong{font-size:.84rem}.photo-gallery span{font-size:.69rem;opacity:.9;margin-top:3px}
.sla-card.premium{background:linear-gradient(135deg,#f7fbfe,#eaf3f9);border-color:#5b8caf}.sla-card.standard{background:linear-gradient(135deg,#fbfdfe,#eef5f8)}.sla-card.light{background:linear-gradient(135deg,#fbfdfb,#eef7f1)}.sla-card.percall{background:linear-gradient(135deg,#fffdf9,#f8f2e7)}
.footer-policy-card{border-top:3px solid var(--brand-blue);background:#f8fbfd}.footer-policy-card:nth-child(2){border-top-color:var(--brand-green)}
@media(max-width:900px){.photo-gallery{grid-template-columns:repeat(2,1fr)}.photo-gallery article:last-child{grid-column:1/-1}}
@media(max-width:600px){.photo-gallery{grid-template-columns:1fr}.photo-gallery article:last-child{grid-column:auto}.photo-gallery img{height:190px}}

/* ===== V5: large photographic hero / editorial corporate layout ===== */
.hero.hero-photo-bg{position:relative;min-height:650px;display:flex;align-items:center;overflow:hidden;background:#0e2637;color:#fff;padding:0}
.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:0;filter:saturate(.88) contrast(1.04)}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,28,43,.88) 0%,rgba(8,28,43,.68) 38%,rgba(8,28,43,.18) 72%,rgba(8,28,43,.28) 100%)}
.hero-inner-overlay{position:relative;z-index:2;width:100%;min-height:650px;display:flex;align-items:center}
.hero-copy-overlay{max-width:720px;padding:70px 0;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.hero-copy-overlay .eyebrow{color:#d9eee5;letter-spacing:.16em;font-weight:800}
.hero-copy-overlay h1{font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.22;margin:16px 0 22px;color:#fff}
.hero-copy-overlay h1 span{color:#a9dec6}
.hero-copy-overlay .lead{font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.9;max-width:650px;color:#f2f7f9}
.hero-copy-overlay .button.primary{background:#4b9273;border-color:#4b9273;text-shadow:none}
.hero-copy-overlay .button.secondary{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.7);color:#fff;text-shadow:none;backdrop-filter:blur(5px)}
.hero-caption-overlay{z-index:3;left:auto;right:5vw;bottom:28px;max-width:460px;background:rgba(7,25,37,.72);border:1px solid rgba(255,255,255,.18);text-shadow:none}
.hero-caption-overlay strong{font-size:1rem}.hero-caption-overlay span{font-size:.78rem}
@media(max-width:900px){.hero.hero-photo-bg,.hero-inner-overlay{min-height:560px}.hero-copy-overlay{padding:55px 0}.hero-overlay{background:linear-gradient(90deg,rgba(8,28,43,.84),rgba(8,28,43,.45))}.hero-caption-overlay{right:20px;left:20px;max-width:none}}
@media(max-width:620px){.hero.hero-photo-bg,.hero-inner-overlay{min-height:650px}.hero-background{object-position:62% center}.hero-copy-overlay{padding:40px 0 90px}.hero-copy-overlay h1{font-size:2.25rem}.hero-copy-overlay .lead{font-size:.98rem;line-height:1.75}.hero-caption-overlay{bottom:16px;left:14px;right:14px;padding:12px 14px}.hero-buttons{flex-direction:column;align-items:stretch}.hero-buttons .button{text-align:center}}

/* ===== V6: full-bleed photographic section headings ===== */
.photo-heading{position:relative;min-height:230px;margin:0 0 38px;border-radius:18px;overflow:hidden;background-image:linear-gradient(90deg,rgba(7,28,42,.84) 0%,rgba(7,28,42,.58) 48%,rgba(7,28,42,.20) 100%),var(--photo);background-size:cover;background-position:center;display:flex;align-items:center;box-shadow:0 16px 38px rgba(20,50,65,.12)}
.photo-heading>div{position:relative;z-index:1;padding:42px 48px;color:#fff;max-width:780px}
.photo-heading .section-label{color:#ccebdd;margin-bottom:8px}
.photo-heading h2{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.25);margin:0;font-size:clamp(2rem,4vw,3.2rem)}
.photo-heading-about{background-position:center 46%}.photo-heading-service{background-position:center 48%}.photo-heading-equipment{background-position:center}.photo-heading-notes{background-position:center 50%}.photo-heading-strength{background-position:center 48%}
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-form .privacy{cursor:pointer}
@media(max-width:620px){.photo-heading{min-height:190px;border-radius:12px;margin-bottom:28px}.photo-heading>div{padding:30px 24px}.photo-heading h2{font-size:2rem}}


/* ===== FINAL PHOTO-FIRST DESIGN ===== */
.photo-heading{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  min-height:360px;
  margin-bottom:52px;
  border-radius:0;
  background-size:cover;
  background-position:center;
  box-shadow:none;
}
.photo-heading>div{
  width:min(1120px,calc(100% - 40px));
  margin:0 auto;
  padding:48px 0;
}
.photo-heading h2{
  font-size:clamp(2.2rem,5vw,4rem);
}
.photo-heading-about{background-position:center 48%}
.photo-heading-service{background-position:center 48%}
.photo-heading-equipment{background-position:center 45%}
.photo-heading-notes{background-position:center 48%}
.photo-heading-strength{background-position:center 52%}

/* SIer message: full-width photographic banner */
.partner-photo-bg{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff;
  background-image:var(--partner-photo);
  background-size:cover;
  background-position:center 42%;
}
.partner-photo-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(8,27,39,.92) 0%,rgba(8,27,39,.78) 45%,rgba(8,27,39,.25) 100%);
}
.partner-photo-bg .partner-inner{
  position:relative;
  z-index:2;
  width:min(1120px,calc(100% - 40px));
}
.partner-photo-bg .partner-copy{
  max-width:760px;
}
.partner-photo-bg .section-label{color:#bfe5d4}
.partner-photo-bg h2{
  color:#fff;
  font-size:clamp(2rem,4.3vw,3.5rem);
  line-height:1.35;
  margin:0 0 28px;
  text-shadow:0 2px 16px rgba(0,0,0,.3);
}
.partner-photo-bg p:not(.section-label){
  color:#f4f8fa;
  font-size:1rem;
  line-height:1.95;
  text-shadow:0 1px 8px rgba(0,0,0,.25);
}
.partner-photo-bg .section-visual{display:none}

/* Contact area gets a restrained photographic backdrop */
.contact{
  position:relative;
  background:
    linear-gradient(90deg,rgba(15,35,46,.96),rgba(15,35,46,.88)),
    url('assets/photos/strength-network.webp') center/cover;
}

/* Gallery becomes a small supporting element rather than competing with the full-bleed banners */
.photo-gallery{grid-template-columns:repeat(5,1fr)}
.photo-gallery article{min-height:210px}
.photo-gallery img{height:210px}

/* Stronger service menu visual distinction */
.sla-card{
  border-width:2px;
  overflow:hidden;
}
.sla-card .sla-name{
  display:inline-block;
  padding:6px 12px;
  border-radius:999px;
  letter-spacing:.12em;
}
.sla-card.premium{border-color:#3f7da0}
.sla-card.premium .sla-name{background:#dcecf5;color:#235d7d}
.sla-card.standard{border-color:#648b9d}
.sla-card.standard .sla-name{background:#e5eef2;color:#365e70}
.sla-card.light{border-color:#5f8f77}
.sla-card.light .sla-name{background:#e2f0e9;color:#376a51}
.sla-card.percall{border-color:#9a805b}
.sla-card.percall .sla-name{background:#f2eadf;color:#705632}

@media(max-width:900px){
  .photo-heading{min-height:320px}
  .photo-gallery{grid-template-columns:repeat(2,1fr)}
  .partner-photo-bg{min-height:560px}
}
@media(max-width:620px){
  .photo-heading{
    min-height:270px;
    margin-bottom:34px;
  }
  .photo-heading>div{
    width:calc(100% - 28px);
    padding:34px 0;
  }
  .photo-heading h2{font-size:2.15rem}
  .partner-photo-bg{
    min-height:620px;
    background-position:62% center;
  }
  .partner-photo-bg .partner-inner{width:calc(100% - 28px)}
  .partner-photo-bg h2{font-size:2rem}
  .photo-gallery{grid-template-columns:1fr}
  .photo-gallery img{height:210px}
}

/* Final polish: back-to-top button and image credit */
.back-to-top{position:fixed;right:22px;bottom:22px;z-index:30;width:54px;height:54px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:rgba(18,62,98,.92);color:#fff;text-decoration:none;box-shadow:0 10px 26px rgba(18,62,98,.22);font-weight:800;line-height:1}.back-to-top span{font-size:.52rem;letter-spacing:.08em;margin-top:4px}.back-to-top:hover{background:#3f7f62}.image-credit{font-size:.62rem!important;white-space:nowrap}.image-credit a{text-decoration:underline}@media(max-width:620px){.back-to-top{right:14px;bottom:14px;width:48px;height:48px}.image-credit{white-space:normal}}


/* ===== V10: full-bleed high-quality photography and robust layout ===== */
/* The V10 rules intentionally override earlier revisions to prevent blank space
   above images and to keep photographs large and sharp on desktop/mobile. */
.hero.hero-photo-bg{
  position:relative!important;
  min-height:680px!important;
  display:flex!important;
  align-items:center!important;
  overflow:hidden!important;
  background:#081d2b url('assets/photos/hero-server.webp') center center/cover no-repeat!important;
  color:#fff!important;
}
.hero.hero-photo-bg .hero-background{display:none!important}
.hero.hero-photo-bg .hero-overlay{position:absolute!important;inset:0!important;z-index:0!important;display:block!important;background:linear-gradient(90deg,rgba(4,18,28,.90) 0%,rgba(4,18,28,.72) 42%,rgba(4,18,28,.24) 100%)!important}
.hero.hero-photo-bg .hero-inner-overlay{position:relative!important;z-index:2!important;min-height:680px!important;display:flex!important;align-items:center!important;padding:0!important}
.hero.hero-photo-bg .hero-copy-overlay{display:block!important;max-width:760px!important;padding:72px 0 110px!important}
.hero.hero-photo-bg .hero-copy-overlay h1{color:#fff!important}
.hero.hero-photo-bg .hero-copy-overlay .lead{color:#f5f8fa!important}
.hero.hero-photo-bg .hero-caption-overlay{position:absolute!important;z-index:3!important;right:5vw!important;bottom:28px!important;left:auto!important}

/* Each major section heading becomes a large, full-width photographic scene. */
.section>.container>.photo-heading{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:0!important;
  min-height:440px!important;
  border-radius:0!important;
  box-shadow:none!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
.section>.container>.photo-heading>div{
  width:min(1180px,calc(100% - 40px))!important;
  margin:0 auto!important;
  padding:72px 0!important;
}
.photo-heading{background-position:center center!important}
.photo-heading h2{font-size:clamp(2.35rem,5vw,4.3rem)!important;line-height:1.2!important}
.photo-heading-about{background-position:center 50%!important}
.photo-heading-service{background-position:center 48%!important}
.photo-heading-equipment{background-position:center 46%!important}
.photo-heading-notes{background-position:center 50%!important}
.photo-heading-strength{background-position:center 50%!important}

.partner-photo-bg{min-height:520px!important;background-size:cover!important;background-position:center center!important}
.partner-photo-bg .partner-copy{max-width:800px!important}
.partner-photo-bg h2{font-size:clamp(2rem,4vw,3.7rem)!important;line-height:1.35!important}

/* Large visual panels further down the page. */
.photo-gallery{gap:18px!important;margin-top:48px!important}
.photo-gallery article{min-height:300px!important;border-radius:12px!important}
.photo-gallery img{width:100%!important;height:300px!important;object-fit:cover!important;image-rendering:auto!important}

.mail-link{display:inline-block!important;font-size:1.15rem!important;font-weight:800!important;text-decoration:underline!important;overflow-wrap:anywhere!important;cursor:pointer!important}
.mail-copy{display:inline-block;margin:10px 0 0;padding:8px 12px;border:1px solid #9fb2bd;border-radius:6px;background:#fff;color:#1f5368;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}
.mail-copy:hover{background:#edf5f7}.mail-help{font-size:.78rem!important;line-height:1.7!important;color:#60717a!important;margin-top:10px!important}

@media(max-width:900px){
  .hero.hero-photo-bg,.hero.hero-photo-bg .hero-inner-overlay{min-height:600px!important}
  .hero.hero-photo-bg .hero-copy-overlay{padding:64px 0 100px!important}
  .section>.container>.photo-heading{min-height:360px!important}
  .section>.container>.photo-heading>div{width:calc(100% - 40px)!important;padding:54px 0!important}
  .photo-gallery article,.photo-gallery img{min-height:240px!important;height:240px!important}
}
@media(max-width:620px){
  .hero.hero-photo-bg{min-height:640px!important;background-position:60% center!important}
  .hero.hero-photo-bg .hero-overlay{background:linear-gradient(90deg,rgba(4,18,28,.88),rgba(4,18,28,.50))!important}
  .hero.hero-photo-bg .hero-inner-overlay{min-height:640px!important}
  .hero.hero-photo-bg .hero-copy-overlay{padding:48px 0 100px!important}
  .hero.hero-photo-bg .hero-caption-overlay{left:14px!important;right:14px!important;bottom:14px!important}
  .section>.container>.photo-heading{min-height:300px!important}
  .section>.container>.photo-heading>div{width:calc(100% - 28px)!important;padding:40px 0!important}
  .photo-heading h2{font-size:2.25rem!important}
  .partner-photo-bg{min-height:520px!important}
  .photo-gallery article,.photo-gallery img{min-height:230px!important;height:230px!important}
}


/* ===== V11: full-bleed photographic sections / robust layout ===== */
:root{
  --brand-blue:#245d7a;
  --brand-green:#4f8f76;
  --brand-gray:#43515a;
  --overlay-dark:rgba(7,24,36,.72);
  --overlay-mid:rgba(7,24,36,.58);
}
body{overflow-x:hidden}
.hero.hero-photo-bg{position:relative!important;isolation:isolate;min-height:720px!important;display:flex!important;align-items:center!important;overflow:hidden!important;background:#102b3b!important}
.hero.hero-photo-bg .hero-background{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 48%!important;display:block!important;z-index:-2!important;
  filter:saturate(.9) contrast(1.08)!important;
}
.hero.hero-photo-bg .hero-overlay{
  position:absolute!important;inset:0!important;z-index:-1!important;display:block!important;
  background:linear-gradient(90deg,rgba(5,22,34,.88) 0%,rgba(5,22,34,.68) 46%,rgba(5,22,34,.22) 100%)!important;
}
.hero.hero-photo-bg .hero-inner-overlay{position:relative!important;z-index:2!important;width:100%!important;min-height:720px!important;display:flex!important;align-items:center!important;padding:80px 0!important}
.hero.hero-photo-bg .hero-copy-overlay{max-width:800px!important;padding:0!important}
.hero.hero-photo-bg .hero-caption-overlay{z-index:3!important}

.partner-photo-bg{
  position:relative!important;isolation:isolate!important;min-height:500px!important;display:flex!important;align-items:center!important;overflow:hidden!important;color:#fff!important;
  background:#163140!important;
}
.partner-photo-bg:before{
  content:"";position:absolute;inset:0;background-image:var(--partner-photo);background-size:cover;background-position:center 48%;z-index:-2;
  filter:saturate(.88) contrast(1.06);
}
.partner-photo-bg .partner-photo-overlay{
  position:absolute!important;inset:0!important;background:linear-gradient(90deg,rgba(6,24,36,.88),rgba(6,24,36,.62) 55%,rgba(6,24,36,.20))!important;z-index:-1!important;
}
.partner-photo-bg .partner-inner{width:100%;padding:95px 0!important}
.partner-photo-bg .partner-copy{max-width:820px!important}
.partner-photo-bg .partner-copy .section-label{color:#cbe9dc!important}
.partner-photo-bg .partner-copy h2{font-size:clamp(2rem,4vw,3.2rem)!important;line-height:1.45!important;color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.partner-photo-bg .partner-copy p:not(.section-label){font-size:1.05rem!important;color:#f2f6f7!important;max-width:780px}

.photo-section{
  position:relative!important;isolation:isolate!important;overflow:hidden!important;color:#fff!important;
  min-height:520px!important;display:flex!important;align-items:center!important;
  background:#173140!important;
}
.photo-section:before{
  content:"";position:absolute;inset:0;background-image:var(--section-photo);background-size:cover;background-position:center;z-index:-2;
  filter:saturate(.86) contrast(1.08);
}
.photo-section:after{
  content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,23,35,.86),rgba(5,23,35,.68) 48%,rgba(5,23,35,.28));z-index:-1;
}
.photo-section .container{position:relative;z-index:2;padding-top:95px;padding-bottom:95px}
.photo-section .section-label{color:#cbe9dc!important}
.photo-section h2{color:#fff!important}
.photo-section .section-intro,.photo-section .section-note{color:#eef4f6!important}
.photo-section .photo-copy{max-width:980px}
.photo-section .glass-grid{margin-top:35px}
.photo-section .glass-card{
  background:rgba(255,255,255,.93)!important;color:#25343d!important;border:1px solid rgba(255,255,255,.45)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.16)!important;backdrop-filter:blur(4px)!important;
}
.photo-section .glass-card p{color:#53616a!important}
.photo-section .glass-card h3,.photo-section .glass-card strong{color:#20323d!important}
.photo-section .glass-card .benefit-tag,.photo-section .glass-card .step-label{color:var(--brand-blue)!important}

#about.photo-section{--section-photo:url('assets/photos/5unific240629_TP_V.webp')}
#service.photo-section{--section-photo:url('assets/photos/2unific2406292_TP_V.webp')}
#equipment.photo-section{--section-photo:url('assets/photos/business-switchx4_TP_V.webp')}
#sla.photo-section{--section-photo:url('assets/photos/2440199_l.jpg')}
#flow.photo-section{--section-photo:url('assets/photos/unific528--8618_TP_V.webp')}
#notes.photo-section{--section-photo:url('assets/photos/unific528--8620_TP_V.webp')}
#strength.photo-section{--section-photo:url('assets/photos/QTIMG_2705_TP_V.jpg')}
#profile.photo-section{--section-photo:url('assets/photos/unific528--8621_TP_V.webp')}
#area.photo-section{--section-photo:url('assets/photos/011red_AC4_TP_V.jpg')}

.photo-section .photo-heading{min-height:0!important;margin:0 0 25px!important;border-radius:0!important;box-shadow:none!important;background:none!important;padding:0!important}
.photo-section .photo-heading:before,.photo-section .photo-heading:after{display:none!important}
.photo-section .photo-heading h2{margin:0!important}
.photo-section .photo-heading .section-label{margin-bottom:8px!important}

#about .lead-text{color:#f1f6f8!important;font-size:1.18rem}
#about .container>p:not(.lead-text){color:#e4edf0!important}
#about .benefit-grid{grid-template-columns:repeat(4,1fr)}
#service .cards,#equipment .equipment-grid,#sla .sla-grid,#flow .flow-grid,#notes .notes-grid,#strength .strength-grid,#profile .profile{position:relative;z-index:2}
#service .card,#equipment .equipment-card,#sla .sla-card,#flow .flow-item,#notes .note-card,#strength .strength,#profile .profile-box{
  background:rgba(255,255,255,.94)!important;border-color:rgba(255,255,255,.65)!important;box-shadow:0 14px 34px rgba(0,0,0,.12)!important;
}
#service .card p,#equipment .equipment-card li,#flow .flow-item p,#notes .note-card p,#strength .strength p,#profile p,#profile li,#sla .sla-card p,#sla .sla-card small{color:#4d5d66!important}
#equipment .section-note{max-width:1000px}
#equipment .equipment-card h3,#service .card h3,#flow .flow-item h3,#notes .note-card strong,#profile .profile-box h3{color:#20343f!important}
#equipment .equipment-grid{grid-template-columns:1.3fr .9fr .9fr}
#sla .sla-card{min-height:230px}
#sla .sla-name{display:inline-block;padding:7px 12px;border-radius:999px;font-size:.76rem;letter-spacing:.12em}
#sla .premium .sla-name{background:#d9edf6;color:#205b78}
#sla .standard .sla-name{background:#e3eef2;color:#355e70}
#sla .light .sla-name{background:#e1f0e8;color:#376b52}
#sla .percall .sla-name{background:#f0e8dc;color:#6e5434}
#flow .info-box{background:rgba(255,255,255,.92)!important;color:#273943!important;border-left-color:var(--brand-green)!important}
#flow .info-box p{color:#53616a!important}
#strength .strength.local{border-top:4px solid var(--brand-green)!important}
#strength .photo-gallery{margin-top:45px;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
#strength .photo-gallery article{min-height:245px;border-radius:12px;overflow:hidden;position:relative;background:#102b40;box-shadow:0 12px 28px rgba(0,0,0,.16)}
#strength .photo-gallery article img{width:100%;height:245px;object-fit:cover;display:block}
#strength .photo-gallery article div{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 13px;background:linear-gradient(transparent,rgba(5,21,32,.92));color:#fff}
#strength .photo-gallery article span{display:block;font-size:.72rem;color:#dce8ec;margin-top:3px}
#profile .profile{grid-template-columns:1.15fr .85fr;gap:40px}
#profile .profile-box{color:#20343f}
#area .area{padding:0!important;background:none!important;border-radius:0!important}
#area .area-main{color:#fff!important;font-size:clamp(1.35rem,2.5vw,2rem)}
#area .area p:not(.area-main){color:#edf4f6!important}
#area .section-label{color:#cbe9dc!important}

#contact .mail-link{display:inline-block;text-decoration:underline;text-underline-offset:4px}
#contact .mail-link:hover{opacity:.82}
#contact .mail-copy{display:block;margin-top:12px;padding:9px 13px;border:1px solid #71848e;background:transparent;color:#fff;border-radius:5px;cursor:pointer;font:inherit}
#contact .mail-help{font-size:.76rem;color:#c8d4d9;line-height:1.65;margin-top:10px}
#contact .gmail-link{display:inline-block;margin-top:10px;color:#d9eee5;font-size:.78rem;text-decoration:underline}

.legal{background:#eef3f5}
.legal .container{background:#fff;padding:60px 70px;box-shadow:0 15px 40px rgba(25,50,65,.08)}
.legal-image{width:100%!important;height:360px!important;object-fit:cover!important;object-position:center!important;border:0!important;border-radius:10px!important;box-shadow:0 14px 32px rgba(20,50,65,.14)}
@media(max-width:1000px){
  #about .benefit-grid{grid-template-columns:repeat(2,1fr)}
  #strength .photo-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .hero.hero-photo-bg,.hero.hero-photo-bg .hero-inner-overlay{min-height:620px!important}
  .partner-photo-bg{min-height:560px!important}
  .photo-section{min-height:auto!important}
  .photo-section .container{padding-top:70px;padding-bottom:70px}
  #equipment .equipment-grid,#profile .profile{grid-template-columns:1fr}
  .legal .container{padding:42px 28px}
}
@media(max-width:620px){
  .hero.hero-photo-bg,.hero.hero-photo-bg .hero-inner-overlay{min-height:650px!important}
  .hero.hero-photo-bg .hero-background{object-position:62% center!important}
  .partner-photo-bg .partner-inner{padding:70px 0!important}
  .photo-section .container{padding-top:60px;padding-bottom:60px}
  #about .benefit-grid{grid-template-columns:1fr}
  #strength .photo-gallery{grid-template-columns:1fr}
  #strength .photo-gallery article,#strength .photo-gallery article img{height:220px;min-height:220px}
  .legal .container{padding:32px 18px}
  .legal-image{height:240px!important}
}

/* ===== V12: alignment, contrast and mail-link usability ===== */
/* Keep the content column aligned with the header instead of letting overlay wrappers
   stretch to the full viewport. */
.hero.hero-photo-bg .hero-inner-overlay{
  width:min(var(--max),calc(100% - 40px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.partner-photo-bg .partner-inner{
  width:min(var(--max),calc(100% - 40px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* White photo-section cards must never inherit white heading text. */
#strength .strength strong{color:#20343f!important}
#strength .strength p{color:#4d5d66!important}
#profile .profile>div:first-child p{color:#eef4f6!important;text-shadow:0 1px 4px rgba(0,0,0,.28)}
#profile .profile>div:first-child h2{color:#fff!important}
#profile .profile>div:first-child .section-label{color:#cbe9dc!important}

/* Make the contact email affordance visually obvious. */
#contact .mail-link{color:#fff!important}
#contact .mail-link:focus-visible,#contact .gmail-link:focus-visible,#contact .mail-copy:focus-visible{outline:3px solid #a9d8c3;outline-offset:4px}

@media(max-width:620px){
  .hero.hero-photo-bg .hero-inner-overlay,.partner-photo-bg .partner-inner{width:calc(100% - 28px)!important}
}


/* ===== V13: explicit mailto/link copy controls ===== */
#contact .mail-link{font-size:1.2rem!important;font-weight:700!important;color:#fff!important;display:inline-block!important}
#contact .mail-action-note{margin:9px 0 10px!important;color:#e5eef1!important;font-size:.82rem!important;line-height:1.6!important}
#contact .mail-action-note code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#fff!important;background:rgba(255,255,255,.10);padding:3px 7px;border-radius:4px;word-break:break-all}
#contact .mail-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
#contact .mail-copy,#contact .mailto-copy{display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;padding:9px 13px!important;border:1px solid rgba(255,255,255,.58)!important;background:rgba(255,255,255,.08)!important;color:#fff!important;border-radius:5px!important;cursor:pointer!important;font:inherit!important;font-size:.84rem!important;font-weight:600!important}
#contact .mail-copy:hover,#contact .mailto-copy:hover{background:rgba(255,255,255,.16)!important}
#contact .gmail-link{display:inline-block!important;margin-top:12px!important;color:#fff!important;font-size:.92rem!important;font-weight:700!important;text-decoration:underline!important;text-underline-offset:4px}
#contact .mail-help{font-size:.8rem!important;color:#e0e9ec!important;line-height:1.75!important;margin-top:12px!important}
#contact .mail-link:focus-visible,#contact .gmail-link:focus-visible,#contact .mail-copy:focus-visible,#contact .mailto-copy:focus-visible{outline:3px solid #a9d8c3;outline-offset:4px}

/* Main navigation refinement: clearer, stronger links while keeping the restrained corporate palette */
.site-header .logo{
  font-size:1.32rem;
  font-weight:900;
  letter-spacing:.035em;
}
.site-header .nav nav{
  gap:22px;
}
.site-header .nav nav > a:not(.nav-contact){
  position:relative;
  font-weight:800;
  color:#263943;
  padding:9px 2px;
  text-decoration:none;
  transition:color .2s ease, background-color .2s ease;
}
.site-header .nav nav > a:not(.nav-contact)::after{
  content:"";
  position:absolute;
  left:2px;
  right:2px;
  bottom:3px;
  height:2px;
  background:var(--brand-blue,#245d7a);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .2s ease;
}
.site-header .nav nav > a:not(.nav-contact):hover,
.site-header .nav nav > a:not(.nav-contact):focus-visible{
  color:var(--brand-blue,#245d7a);
}
.site-header .nav nav > a:not(.nav-contact):hover::after,
.site-header .nav nav > a:not(.nav-contact):focus-visible::after{
  transform:scaleX(1);
}
.site-header .nav nav > a:not(.nav-contact):focus-visible{
  outline:2px solid rgba(36,93,122,.28);
  outline-offset:3px;
  border-radius:3px;
}
.site-header .nav .nav-contact{
  font-weight:800;
}
@media(max-width:1100px) and (min-width:901px){
  .site-header .nav nav{gap:13px;font-size:.78rem}
  .site-header .nav nav > a:not(.nav-contact){padding-left:1px;padding-right:1px}
}

/* Service menu disclaimer: improve readability against the photo background */
.sla-note{
  color:#243b46 !important;
  background:rgba(255,255,255,.94);
  border-left:4px solid #4f7384;
  border-radius:6px;
  padding:10px 14px;
  margin-top:20px;
  font-weight:600;
  line-height:1.7;
  box-shadow:0 4px 14px rgba(20,40,50,.10);
}


/* ===== v20 visibility + local-advantage emphasis ===== */
.sla-note {
  margin-top: 22px !important;
  padding: 14px 18px !important;
  background: #e7edf0 !important;
  border: 1px solid #a9b8c0 !important;
  border-left: 5px solid #536b78 !important;
  border-radius: 4px !important;
  color: #24343d !important;
  font-size: .92rem !important;
  line-height: 1.7 !important;
  font-weight: 600 !important;
}
.sla-card small {
  color: #40515b !important;
  font-size: .84rem !important;
  line-height: 1.65 !important;
}
.strength.local {
  background: #f1f5f6 !important;
  border: 2px solid #6d8490 !important;
  border-left: 6px solid #536b78 !important;
  box-shadow: 0 4px 14px rgba(32, 52, 61, .08) !important;
}
.strength.local strong {
  color: #263f4b !important;
  font-size: 1.12rem !important;
}
.strength.local p {
  color: #334952 !important;
  font-size: .94rem !important;
  line-height: 1.8 !important;
}


/* ===== V25: precise anchor positioning + refined navigation ===== */
/*
   Section links are positioned by JS using the actual sticky-header height and
   each section's top padding. The CSS below provides a safe fallback and keeps
   the hash target from being hidden behind the sticky header.
*/
html{scroll-behavior:smooth;scroll-padding-top:72px;}
section[id]{scroll-margin-top:-20px;}

/* Desktop navigation: keep every label on one line and give the brand more presence. */
.site-header .nav{
  gap:24px;
  min-height:72px;
}
.site-header .logo{
  flex:0 0 auto;
  white-space:nowrap;
  font-size:1.78rem !important;
  line-height:1.1;
  letter-spacing:.015em;
}
.site-header .nav nav{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:nowrap;
  font-size:.78rem;
}
.site-header .nav nav > a{
  flex:0 0 auto;
  white-space:nowrap;
}
.site-header .nav nav > a:not(.nav-contact){
  padding:8px 1px;
  line-height:1.35;
  letter-spacing:.01em !important;
}
.site-header .nav .nav-contact{
  flex:0 0 auto;
  white-space:nowrap;
  padding:8px 14px;
  line-height:1.35;
}

/* The mobile quick-navigation remains compact and easy to tap. */
.mobile-section-nav{display:none;}

@media(max-width:1100px) and (min-width:901px){
  .site-header .nav{gap:14px;}
  .site-header .logo{font-size:1.52rem !important;}
  .site-header .nav nav{gap:8px;font-size:.70rem;}
  .site-header .nav .nav-contact{padding:7px 10px;}
}

@media(max-width:620px){
  html{scroll-padding-top:62px;}
  section[id]{scroll-margin-top:2px;}
  .site-header .nav{min-height:62px;gap:12px;}
  .site-header .logo{font-size:1.35rem !important;}
  .mobile-section-nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:16px;
    width:100%;
  }
  .mobile-section-nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:8px 10px;
    border:1px solid rgba(255,255,255,.58);
    border-radius:5px;
    background:rgba(8,29,43,.58);
    color:#fff;
    text-decoration:none;
    font-size:.82rem;
    font-weight:700;
    line-height:1.35;
    text-align:center;
    backdrop-filter:blur(4px);
  }
  .mobile-section-nav a:hover,.mobile-section-nav a:focus-visible{
    background:rgba(255,255,255,.16);
    border-color:#fff;
  }
  .mobile-section-nav a:focus-visible{outline:2px solid #b9d9e5;outline-offset:2px;}
  .mobile-section-nav a:last-child{grid-column:1 / -1;}
}

/* V28: top-page quick navigation adds area while keeping profile as a secondary trust link. */
.profile-link-wrap{margin:28px 0 6px;}
.profile-link{display:inline-block;}


/* ===== V26: visual anchor position + mobile quick-nav visibility ===== */
@media(min-width:621px){
  html{scroll-padding-top:0!important;}
  section[id]{scroll-margin-top:0!important;}
}
@media(max-width:620px){
  html{scroll-padding-top:0!important;}
  section[id]{scroll-margin-top:0!important;}
  .hero.hero-photo-bg{
    min-height:0!important;
    height:auto!important;
    display:block!important;
  }
  .hero.hero-photo-bg .hero-inner-overlay{
    min-height:0!important;
    height:auto!important;
    display:block!important;
    padding:42px 0 22px!important;
  }
  .hero.hero-photo-bg .hero-copy-overlay{
    max-width:none!important;
    padding:0 0 18px!important;
  }
  .hero.hero-photo-bg .mobile-section-nav{
    margin-top:20px!important;
    margin-bottom:0!important;
  }
  .hero.hero-photo-bg .hero-caption-overlay{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    top:auto!important;
    margin:8px 14px 14px!important;
    max-width:none!important;
    width:auto!important;
  }
}

/* V29: add 対応エリア to the desktop header navigation. Keep the desktop menu
   balanced without changing the confirmed anchor stop positions. */
@media(min-width:1101px){
  .site-header .nav nav{gap:11px;}
  .site-header .nav nav > a:not(.nav-contact){padding-left:1px;padding-right:1px;}
}


/* ===== v30: page-separated site structure ===== */
.page-main{min-height:60vh}
.page-lead{padding:76px 0 42px;background:linear-gradient(135deg,#eef4f7,#f8fafb);border-bottom:1px solid var(--line)}
.page-lead h1{font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.3;margin:0 0 12px;letter-spacing:-.035em;color:#20333e}
.page-lead p:not(.section-label){max-width:820px;color:#52636c;font-size:1.03rem;margin:0}
.site-header .nav nav a.active{color:#245d7a}
.site-header .nav nav a.active::after{transform:scaleX(1)}
.mobile-menu{display:none}
.home-links{background:#fff}
.home-intro{max-width:820px;color:var(--muted);margin-top:-10px}
.home-link-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px}
.home-link-card{display:flex;flex-direction:column;gap:6px;min-height:145px;padding:22px 20px;border:1px solid #cbd8de;border-radius:10px;background:linear-gradient(135deg,#fbfdfe,#eef4f7);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.home-link-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(28,55,67,.10);border-color:#7d9eae}
.home-link-card span{font-size:.72rem;letter-spacing:.12em;font-weight:800;color:#3f7f62;text-transform:uppercase}
.home-link-card strong{font-size:1.08rem;color:#20343f;line-height:1.45}
.home-link-card em{margin-top:auto;font-style:normal;font-size:.78rem;color:#31566d;font-weight:700}
.home-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px}
.home-seo{padding-top:72px;padding-bottom:72px}
.home-seo p:not(.section-label){color:#4e5f68}
.home-contact-banner{padding:55px 0;background:#172a35;color:#fff}
.home-contact-banner .container{display:flex;align-items:center;justify-content:space-between;gap:30px}
.home-contact-banner h2{margin:0 0 8px;font-size:clamp(1.5rem,3vw,2.2rem)}
.home-contact-banner p:not(.section-label){margin:0;color:#d6e0e4}
.home-contact-banner .section-label{color:#bfe5d4}
.profile-summary-wrap{padding:80px 0;background:#eef3f5}
.profile-summary-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:55px;align-items:start}
.profile-summary-inner h2{margin:0 0 24px;font-size:clamp(1.8rem,3vw,2.5rem)}
.profile-summary-inner p:not(.section-label){color:#4d5d66}
.profile-summary-inner .profile-box{background:#fff}
@media(max-width:900px){.home-link-grid{grid-template-columns:repeat(2,1fr)}.profile-summary-inner{grid-template-columns:1fr}.home-contact-banner .container{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.page-lead{padding:58px 0 32px}.home-link-grid{grid-template-columns:1fr 1fr;gap:10px}.home-link-card{min-height:128px;padding:17px 14px}.home-link-card strong{font-size:.95rem}.home-contact-banner{padding:44px 0}.mobile-menu{display:block;position:relative;margin-left:auto}.mobile-menu summary{list-style:none;cursor:pointer;padding:8px 11px;border:1px solid #9fb1ba;border-radius:999px;font-size:.78rem;font-weight:800;color:#20343f;background:#fff}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(330px,calc(100vw - 28px));padding:10px;background:rgba(255,255,255,.98);border:1px solid #cbd8de;border-radius:12px;box-shadow:0 16px 40px rgba(20,45,60,.18);display:grid;grid-template-columns:1fr 1fr;gap:7px;z-index:50}.mobile-menu-panel a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 9px;border:1px solid #d2dde2;border-radius:7px;text-decoration:none;font-size:.78rem;font-weight:800;text-align:center;color:#243b46;background:#f8fafb}.mobile-menu-panel a.active{background:#e8f1f5;border-color:#7f9baa;color:#245d7a}.mobile-menu-panel .mobile-contact{grid-column:1/-1;background:#31566d;color:#fff;border-color:#31566d}.site-header .nav nav{display:none}.site-header .nav{min-height:62px}.site-header .logo{font-size:1.45rem !important}.home-cta .button{width:100%;text-align:center}.profile-summary-wrap{padding:62px 0}}
@media(min-width:621px){.mobile-menu{display:none!important}}

.page-section-title{font-size:clamp(2.0rem,3.2vw,3rem);line-height:1.35;margin:0 0 30px;letter-spacing:-.03em;color:#fff!important}
@media(max-width:620px){.page-section-title{font-size:2rem}}

/* ===== V31/V32: page-split layout — align each destination to the confirmed viewport position =====
   The site is now page-based rather than anchor-scroll based. Keep the first
   content line close to the bottom edge of the sticky header on every page.
   IMPORTANT: this rule set must remain active; an earlier build accidentally
   left the opening comment unclosed, so these rules were ignored by browsers. */
.photo-section{
  align-items:flex-start!important;
}
.photo-section .container{
  padding-top:12px!important;
  padding-bottom:72px!important;
}
@media(max-width:900px){
  .photo-section .container{
    padding-top:12px!important;
    padding-bottom:60px!important;
  }
}
@media(max-width:620px){
  .photo-section .container{
    padding-top:12px!important;
    padding-bottom:52px!important;
  }
}

/* v32: page-separated pages must not vertically center the content. */
.photo-section{
  align-items:flex-start!important;
}

/* v33: correct the actual section top offset. The base .section rule adds
   95px vertical padding; overriding only the inner container was not enough.
   Keep the content just below the sticky header on page-separated pages. */
.photo-section{
  padding-top:0!important;
  padding-bottom:0!important;
}
.photo-section .container{
  padding-top:12px!important;
  padding-bottom:72px!important;
}
@media(max-width:900px){
  .photo-section .container{padding-top:12px!important;padding-bottom:60px!important;}
}
@media(max-width:620px){
  .photo-section .container{padding-top:12px!important;padding-bottom:52px!important;}
}

/* v35: legal/policy pages — keep the first content position aligned with the confirmed reference. */
.legal{padding-top:10px!important;}
@media(max-width:900px){.legal{padding-top:10px!important;}}
@media(max-width:620px){.legal{padding-top:20px!important;}}

/* ===== V38: definitive page-start / TOP-position alignment =====
/* Separate-page destinations must open at the same visual start point
   directly beneath the sticky header on PC and mobile. */
.page-main{scroll-margin-top:72px!important;}
.photo-section{padding-top:0!important;margin-top:0!important;}
.photo-section .container{padding-top:12px!important;}
.legal{padding-top:10px!important;margin-top:0!important;}
.legal .container{margin-top:0!important;}
@media(max-width:620px){
  .page-main{scroll-margin-top:62px!important;}
  .photo-section .container{padding-top:12px!important;}
  .legal{padding-top:20px!important;}
}


/* ===== V39: TOP↑ must return to the same true page-top position as a direct page entry.
   Do not use an element anchor for TOP↑: sticky headers can hide the anchor target.
   The button now uses href="#", which returns to document scrollTop 0 on all browsers. ===== */
.back-to-top{scroll-margin-top:0!important;}


/* ===== V45: top-page brand logo + BIZ UDP Mincho-like wordmark ===== */
.site-header .brand-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  white-space:nowrap;
}
.site-header .brand-logo{
  width:42px;
  height:42px;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
}
.site-header .brand-text{
  font-family:"BIZ UDP明朝","BIZ UDPMincho","Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  font-size:1.34rem;
  font-weight:700;
  font-style:italic;
  letter-spacing:.025em;
  line-height:1;
}
@media(max-width:620px){
  .site-header .brand-link{gap:7px;}
  .site-header .brand-logo{width:34px;height:34px;}
  .site-header .brand-text{font-size:1.08rem;}
}


/* ===== V46: unified brand typography on all pages ===== */
.site-header .brand-text,
.site-header .logo {
  font-family:"BIZ UDP明朝","BIZ UDPMincho","Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  font-weight:700;
  font-style:normal;
  letter-spacing:.025em;
  line-height:1;
}
.footer-brand-text {
  font-family:"BIZ UDP明朝","BIZ UDPMincho","Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  font-size:1.15rem;
  font-weight:700;
  font-style:normal;
  letter-spacing:.025em;
  line-height:1.2;
}

/* V55_COMPANY_INFO_MENU */
.nav-dropdown{position:relative;display:inline-block;}
.nav-dropdown>summary{list-style:none;cursor:pointer;white-space:nowrap;}
.nav-dropdown>summary::-webkit-details-marker{display:none;}
.nav-dropdown-menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:1000;min-width:190px;padding:8px;background:#fff;border:1px solid rgba(20,45,60,.14);border-radius:10px;box-shadow:0 12px 28px rgba(15,35,50,.16);}
.nav-dropdown:not([open]) .nav-dropdown-menu{display:none;}
.nav-dropdown-menu a{display:block;padding:10px 12px;white-space:nowrap;text-decoration:none;border-radius:7px;}
.nav-dropdown-menu a:hover{background:rgba(56,113,144,.08);}


/* V57_BRAND_POSITION_AND_SIZE */
.site-header .container.nav{
  display:flex;
  align-items:center;
}
.site-header .brand-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-right:auto;
  flex:0 0 auto;
  white-space:nowrap;
}
.site-header .brand-link .brand-logo{
  width:50px;
  height:50px;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
}
.site-header .brand-link .brand-text{
  font-family:"BIZ UDP明朝","BIZ UDPMincho","Yu Mincho","Hiragino Mincho ProN","MS PMincho",serif;
  font-size:1.55rem;
  font-weight:700;
  font-style:normal;
  letter-spacing:.02em;
  line-height:1;
  white-space:nowrap;
}
.site-header .nav-dropdown > summary{
  font:inherit;
  font-weight:inherit;
  color:inherit;
}
@media(max-width:1100px){
  .site-header .brand-link .brand-logo{width:46px;height:46px;}
  .site-header .brand-link .brand-text{font-size:1.40rem;}
}
@media(max-width:900px){
  .site-header .brand-link .brand-logo{width:42px;height:42px;}
  .site-header .brand-link .brand-text{font-size:1.28rem;}
}


/* V57_BUSINESS_INFO_MENU */
.site-header .nav-dropdown > summary{
  display:inline-block;
  padding:2px 0;
}
.site-header .nav-dropdown > summary::after{
  content:" ▾";
  font-size:.75em;
  margin-left:2px;
}
.site-header .nav-dropdown[open] > summary::after{
  content:" ▴";
}

/* ===== V58: header brand alignment and business-menu typography ===== */
/* Keep the existing logo/name size, move the whole brand closer to the left edge,
   and give the desktop navigation enough horizontal room so it never overlaps it. */
@media(min-width:901px){
  .site-header .container.nav{
    width:calc(100% - 40px);
    max-width:none;
    margin-left:20px;
    margin-right:20px;
  }
}

/* The Business Information control uses exactly the same typography and box model
   as the other desktop navigation items. */
.site-header .nav-dropdown{
  flex:0 0 auto;
  color:#263943;
}
.site-header .nav-dropdown > summary{
  display:inline-block;
  padding:8px 1px;
  margin:0;
  border:0;
  background:transparent;
  color:#263943;
  font-family:inherit;
  font-size:inherit;
  font-weight:800;
  font-style:normal;
  line-height:1.35;
  letter-spacing:.01em;
  vertical-align:middle;
}
.site-header .nav-dropdown > summary:focus-visible{
  outline:2px solid rgba(36,93,122,.28);
  outline-offset:3px;
  border-radius:3px;
}


/* V60: Mobile business information menu matches the desktop dropdown behavior. */
@media(max-width:620px){
  .mobile-menu-panel .mobile-business-menu{
    position:relative;
    margin:0;
    padding:0;
    min-width:0;
  }
  .mobile-menu-panel .mobile-business-menu summary{
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:8px 9px;
    border:1px solid #d2dde2;
    border-radius:7px;
    font-size:.78rem;
    font-weight:800;
    text-align:center;
    color:#243b46;
    background:#f8fafb;
    box-sizing:border-box;
  }
  .mobile-menu-panel .mobile-business-menu summary::-webkit-details-marker{display:none}
  .mobile-menu-panel .mobile-business-submenu{
    position:absolute;
    top:calc(100% + 7px);
    right:0;
    width:100%;
    min-width:145px;
    padding:7px;
    display:grid;
    gap:7px;
    background:rgba(255,255,255,.99);
    border:1px solid #cbd8de;
    border-radius:9px;
    box-shadow:0 12px 28px rgba(20,45,60,.18);
    z-index:60;
    box-sizing:border-box;
  }
  .mobile-menu-panel .mobile-business-submenu a{
    min-height:40px;
    font-size:.74rem;
    background:#f8fafb;
  }
}

/* V61: Force the smartphone "事業者情報" button to use exactly the same rectangular shape as the other menu buttons. */
@media(max-width:620px){
  .mobile-menu-panel > .mobile-business-menu{
    width:100% !important;
    min-width:0 !important;
    align-self:stretch !important;
  }
  .mobile-menu-panel > .mobile-business-menu > summary{
    width:100% !important;
    min-width:0 !important;
    height:44px !important;
    min-height:44px !important;
    padding:8px 9px !important;
    border:1px solid #d2dde2 !important;
    border-radius:7px !important;
    background:#f8fafb !important;
    color:#243b46 !important;
    font-size:.78rem !important;
    font-weight:800 !important;
    line-height:1.35 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    box-sizing:border-box !important;
    appearance:none;
    -webkit-appearance:none;
  }
}

/* V63: Align the labels and values in the business information table. */
.info-table{width:100%;border-collapse:collapse;}
.info-table th{width:15em;text-align:left;white-space:nowrap;vertical-align:top;padding:10px 18px 10px 0;}
.info-table td{text-align:left;vertical-align:top;padding:10px 0;}
@media(max-width:620px){
  .info-table th{width:15em;padding-right:12px;}
  .info-table td{word-break:break-all;}
}
