/* Quiet, architectural motion shared by the homepage and every detail page. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.25,.46,.45,.94);--accent:#ce533b;--paper:#fdfdfb}
::selection{background:#d4e0d2;color:#1c3a32}
.header{background:rgba(253,253,251,.94);transition:box-shadow .3s,background .3s;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.header.is-scrolled{background:rgba(253,253,251,.9);box-shadow:0 5px 30px #172c2308;border-bottom-color:#dce1dd90}
.header #nav a{position:relative;transition:color .3s}
.header #nav a::after{content:"";position:absolute;bottom:-9px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
.header #nav a:hover::after,.header #nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.reading-progress{position:fixed;left:0;top:0;z-index:60;height:2px;width:100%;background:linear-gradient(90deg,#6d8a70,#ce795e);transform:scaleX(0);transform-origin:left;pointer-events:none}
.detail-hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#edf1e9 10%,#e4ece1 68%,#d9e5da);padding-bottom:76px}
.detail-hero>.wrap{position:relative;z-index:1}
.detail-hero::before,.detail-hero::after{content:"";position:absolute;z-index:0;pointer-events:none;border:1px solid #68877520;width:480px;height:620px;border-radius:48% 48% 4px 4px;right:8%;top:26%;transform:rotate(-24deg)}
.detail-hero::after{right:-2%;top:6%;width:450px;height:630px;border-color:#68877515;transform:rotate(-24deg)}
.detail-hero h1{font-weight:600;letter-spacing:-.055em;line-height:1.35;max-width:850px}
.hero h1{font-weight:600}.hero .button{box-shadow:0 8px 30px #071e1a25}
.company-nav{background:#203c33}.company-nav a{transition:color .3s,border-color .4s;position:relative}
.company-nav a[aria-current]{border-color:#d7a18b}
.detail-subnav a{transition:color .3s}
.button{position:relative;isolation:isolate;overflow:hidden;transition:box-shadow .3s,background .3s,border-color .3s;letter-spacing:.015em}
.button:hover{filter:none;box-shadow:0 8px 20px #1c3a3214}
.button:active{box-shadow:none}
.button::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 25%,#ffffff20 48%,transparent 70%);transform:translateX(-125%);transition:transform .8s var(--ease-out);pointer-events:none;z-index:-1}
.button:hover::after,.button:focus-visible::after{transform:translateX(125%)}
.button.accent:hover{background:#b94430}.button.dark:hover{background:#294b3e}
.text-button{transition:color .3s,border-color .3s}

.service-card,.related-grid>a,.guide-links>a,.company-links>a,.certificate-card,.client-logo{transition:box-shadow .55s var(--ease-out),border-color .55s,background .55s;}
.service-card{overflow:hidden}.service-card>img{transition:filter .4s}
.certificate-image img{transition:transform .75s var(--ease-out),filter .6s}.certificate-action>span{transition:transform .5s var(--ease-out)}
.certificate-open{transition:background .5s}.client-logo img{transition:transform .7s var(--ease-out)}
.quick a{position:relative}
.quick a::after{content:"↗";position:absolute;right:18px;top:0;font-size:16px;color:var(--accent);opacity:0;transform:translate(-4px,4px);transition:opacity .4s,transform .4s var(--ease-out)}
.quick a:hover::after,.quick a:focus-visible::after{opacity:1;transform:translate(0,0)}
.toc>a{position:relative;padding-left:12px;font-weight:650;transition:color .25s,background .25s}
.toc>a.is-current{color:var(--green);font-weight:650;background:linear-gradient(90deg,#edf2e8,transparent)}
.toc>a.is-current::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--accent)}
.history-year{transition:background .5s}.history-year h3{transition:color .35s}
.history-year ul{position:relative}.history-year ul::before{content:"";position:absolute;left:-5px;top:13px;width:8px;height:8px;border-radius:50%;background:#c4886d;box-shadow:0 0 0 5px var(--paper);transition:box-shadow .5s}
.history-year:hover h3{color:var(--accent)}.history-year:hover ul::before{box-shadow:0 0 0 6px #f1e3d8}
.interactive-checklist label{transition:background .3s,color .3s}.interactive-checklist label:has(input:checked){background:#edf3e8}
.faq-list summary{transition:color .3s}.faq-list summary::after{transition:transform .35s var(--ease-out)}.faq-list details[open] summary::after{transform:rotate(180deg)}
input,select,textarea{transition:border-color .3s,box-shadow .3s,background .3s}input:focus,select:focus,textarea:focus{border-color:#64816b;box-shadow:0 0 0 4px #65856a10}
.segmented button{transition:background .3s,color .3s,border-color .4s}.segmented button:hover{background:#e3eadd66}
.back-top{position:fixed;bottom:24px;right:26px;z-index:19;width:46px;height:46px;border:1px solid #b6c5b7;background:#fdfdfbee;backdrop-filter:blur(12px);color:var(--green);border-radius:50%;box-shadow:0 6px 24px #10281b12;display:grid;place-items:center;font-size:22px;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,background .3s;cursor:pointer}.back-top.is-visible{opacity:1;visibility:visible}.back-top:hover{background:#e8eee3}
dialog[open]{animation:dialog-enter .2s var(--ease-out)}dialog[open]::backdrop{animation:backdrop-enter .3s ease-out}
@keyframes dialog-enter{from{opacity:.7}to{opacity:1}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@media(hover:hover) and (pointer:fine){.service-card:hover,.related-grid>a:hover,.guide-links>a:hover,.company-links>a:hover,.certificate-card:hover{box-shadow:0 18px 40px -22px #19392f40;border-color:#9daf9e}.service-card:hover>img{filter:saturate(1)}.certificate-card:hover img{transform:scale(1.012)}.certificate-card:hover .certificate-action>span{transform:none}.client-logo:hover{background:#f3f6ef;border-color:#b3c4af}.client-logo:hover img{transform:scale(1.015)}}
@media(min-width:1000px){.detail-hero h1{font-size:54px}.company-message{font-size:18px;line-height:2.1}.company-message p{margin-bottom:26px}}
@media(max-width:850px){.header #nav a::after{bottom:6px;width:30px}.detail-hero::before{right:-200px;opacity:.5}.detail-hero::after{right:-280px;opacity:.5}.detail-hero{padding-bottom:48px}}
@media(max-width:600px){.back-top{bottom:18px;right:16px;width:42px;height:42px}.detail-hero h1{font-size:35px}.quick a::after{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.service-card:hover,.related-grid>a:hover,.guide-links>a:hover,.company-links>a:hover,.certificate-card:hover,.quick a:hover{translate:none}.button:hover,.text-button:hover,.history-year:hover h3,.client-logo:hover img,.certificate-card:hover img{transform:none}.service-card:hover>img{scale:1}.detail-hero::before,.detail-hero::after{translate:none;transform:rotate(-24deg)}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
@media print{.reveal{opacity:1!important;transform:none!important}.reading-progress,.back-top{display:none!important}}
