/* Standard layouts use flex containers; all content remains in the markup. */
.page-top{height:0}.subpage-content{background:var(--white);min-height:50vh}
.page-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 85% 20%,rgba(47,107,82,.72),transparent 65%),var(--deep)}
.page-hero>.section-inner{position:relative;z-index:1;padding-top:92px;padding-bottom:86px}
.page-hero-orbit{position:absolute;pointer-events:none;right:-8%;top:-48%;width:68%;height:200%;border:1px solid rgba(59,186,133,.18);border-radius:50%;transform:rotate(-30deg)}
.page-hero-content{display:flex;flex-direction:column;gap:28px;max-width:1050px}
.page-hero-slide{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.page-hero .article-heading{color:var(--white);font-weight:400;font-size:32px;line-height:1.35}
.page-hero-slide:not(:first-child){padding-top:22px;border-top:1px solid rgba(59,186,133,.22)}
.page-hero-slide:not(:first-child) .article-heading{font-size:20px;font-weight:700}
.page-hero-buttons{display:flex;flex-wrap:wrap;gap:14px}.page-hero-buttons .button{color:var(--forest);background:var(--white)}
.article-section>.section-inner{padding-top:70px;padding-bottom:80px}
.article-stack{display:flex;flex-direction:column;gap:40px}
.article-section:not(:has(>.section-inner)){padding:70px var(--section-pad)}
.article-intro{display:flex;flex-direction:column;gap:20px}
.article-heading{color:var(--forest);font-size:32px;line-height:1.3;max-width:100%;overflow-wrap:break-word}
h3.article-heading{font-size:20px}
.article-text,.article-list{font-size:16px;line-height:1.75;overflow-wrap:break-word}
.article-text p+p{margin-top:20px}.article-text a,.article-list a{color:var(--forest);text-decoration:underline;text-decoration-color:var(--mint);text-underline-offset:4px}
.article-text ul,.article-text ol,.article-list ul,.article-list ol{list-style:disc;padding-left:24px;display:flex;flex-direction:column;gap:10px}
.article-text ol,.article-list ol{list-style:decimal}.article-text li+li{margin-top:8px}
.article-image{width:auto;max-width:100%;height:auto;object-fit:contain;border-radius:10px}
.article-stack>.article-image{align-self:center;max-width:800px}
.content-row{display:flex;align-items:center;gap:40px;padding:24px 0}
.content-visual{flex:0 1 38%;min-width:0;display:flex;align-items:center;justify-content:center;position:relative}
.content-visual img{width:100%;height:auto;max-height:750px;object-fit:contain;box-shadow:0 18px 38px rgba(47,107,82,.12)}
.content-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:22px}
.content-row:nth-of-type(even){flex-direction:row-reverse}
.content-cards,.module-list{display:flex;flex-wrap:wrap;gap:26px;align-items:stretch}
.content-card{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:30px;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 34px rgba(47,107,82,.065);background:var(--white)}
.content-card .article-image{max-height:250px;align-self:center}.content-card .button{margin-top:auto}
.module-item{flex:1 1 300px;min-width:0;padding:28px 24px;display:flex;flex-direction:column;gap:18px;border-top:3px solid var(--forest);background:linear-gradient(145deg,rgba(47,107,82,.035),transparent 75%)}
.module-item .article-text{font-size:16.64px}.module-item .article-heading{font-size:20px}
.feature-item{display:flex;flex-direction:column;gap:12px;position:relative;padding:8px 0 8px 40px}
.feature-item:before{content:'✓';position:absolute;left:0;top:8px;font-size:22px;color:var(--forest)}
.service-detail{display:flex;flex-direction:column;gap:24px;padding:30px 0;border-top:1px solid var(--line)}
.service-detail>.article-image{max-width:240px;max-height:200px;align-self:flex-start}
.reference-author{font-size:20px;color:var(--forest)}.reference-role{font-size:16px;margin-top:-10px}
.subpage-main .content-cards:has(.reference-author){max-width:940px;margin:0 auto}
.subpage-main .content-card:has(.reference-author){padding:40px;border:0;box-shadow:none}
.subpage-main .content-card:has(.reference-author) .article-image{max-width:230px;max-height:150px;width:auto;align-self:flex-start}
.timeline-list{display:flex;flex-direction:column;gap:0;position:relative;max-width:960px;margin:0 auto}
.timeline-list:before{content:'';position:absolute;left:16px;top:8px;bottom:30px;width:1px;background:linear-gradient(var(--mint),var(--line))}
.timeline-item{position:relative;display:flex;flex-direction:column;gap:18px;padding:0 0 52px 64px;min-width:0}
.timeline-item:before{content:'';position:absolute;left:10px;top:12px;width:13px;height:13px;border-radius:50%;background:var(--forest);box-shadow:0 0 0 6px rgba(59,186,133,.15)}
.timeline-year{font-size:16px;font-weight:700;color:var(--forest)}.timeline-item .article-heading{font-size:20px}.timeline-item .article-image{max-width:650px;max-height:650px;align-self:flex-start;object-fit:contain;box-shadow:0 14px 30px rgba(47,107,82,.08)}
.gallery-list{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.gallery-item{margin:0;flex:0 0 calc(50% - 11px);min-width:0;overflow:hidden;border-radius:14px;box-shadow:0 12px 28px rgba(47,107,82,.1)}
.gallery-item:nth-child(3n){flex-basis:100%}.gallery-item a{display:block;cursor:zoom-in}.gallery-image{width:100%;height:auto;object-fit:contain;transition:transform .4s}.gallery-item a:hover .gallery-image{transform:scale(1.015)}
.gallery-viewer{border:0;padding:0;background:transparent;color:var(--white);width:min(94vw,1200px);max-height:92vh;overflow:visible}.gallery-viewer::backdrop{background:rgba(4,13,9,.94)}
.gallery-viewer-inner{position:relative;display:flex;flex-direction:column;gap:14px;align-items:center}.gallery-viewer img{max-height:80vh;max-width:100%;height:auto;width:auto;object-fit:contain}.gallery-close{position:absolute;right:0;top:-45px;color:white;background:var(--forest);border:1px solid var(--mint);border-radius:50%;width:36px;height:36px;font-size:22px}
.gallery-viewer-controls{display:flex;align-items:center;gap:25px}.gallery-viewer-controls button{border:1px solid var(--mint);border-radius:30px;padding:8px 20px;color:white;background:var(--deep)}
.contact-form{display:flex;flex-direction:column;gap:20px;width:100%;max-width:760px;padding:30px;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(47,107,82,.06)}
.contact-form label{display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:700}
.contact-form input,.contact-form textarea,.contact-form select{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:8px;min-width:0;width:100%;padding:12px;color:var(--ink);background:white}.contact-form textarea{resize:vertical;min-height:160px}
.contact-form .acceptance-field{flex-direction:row;align-items:flex-start;font-size:14px;line-height:1.6;gap:12px}.acceptance-field input{width:18px;height:18px;flex:0 0 18px;margin-top:4px}.contact-form .button{align-self:flex-start}.preview-form-status{font-size:14px;color:var(--forest)}
.anchor-target{scroll-margin-top:28px}.contact-team .team>.section-inner{padding:0}.contact-team .team-topline{display:none}
@media(max-width:900px){.page-hero>.section-inner{padding-top:66px;padding-bottom:60px}.article-section>.section-inner{padding-top:54px;padding-bottom:60px}.content-row{gap:28px}.subpage-main .article-section:not(:has(>.section-inner)){padding:54px var(--section-pad)}}
@media(max-width:680px){.content-row,.content-row:nth-of-type(even){flex-direction:column;align-items:stretch;gap:24px}.content-visual{flex-basis:auto;width:100%}.content-visual img{max-height:580px;width:auto}.content-card{padding:22px}.article-stack{gap:30px}.page-hero-content{gap:24px}.module-item{flex-basis:100%;padding:24px 18px}.subpage-main .content-card:has(.reference-author){padding:5px}.timeline-item{padding-left:42px;padding-bottom:42px}.timeline-list:before{left:8px}.timeline-item:before{left:2px}.gallery-list{gap:14px}.gallery-item{flex-basis:calc(50% - 7px)}.contact-form{padding:22px}.page-hero-buttons{gap:12px}.page-hero-buttons .button{padding:14px 20px}}
@media(prefers-reduced-motion:reduce){.gallery-image{transition:none}.gallery-item a:hover .gallery-image{transform:none}}
