/* Shared visual system: mineral colours, generous type and clear navigation. */
:root{--paper:#faf7ef;--stone:#eee7d7;--ink:#253c31;--muted:#596457;--bronze:#846334;--line:#d9ddcf}
body{line-height:1.6}
.header{background:#faf7eff5}
.topbar{font-size:11px;letter-spacing:.09em}
.nav{height:88px}
.brand-symbol{width:40px;height:45px}
.brand-text{letter-spacing:-.02em}
.nav-links{gap:25px}
.nav-links>a{font-size:14px;font-weight:500}
.nav-contact{border-radius:5px;background:var(--ink);color:var(--paper);border-color:var(--ink)}
.nav-contact:hover{background:#3b5545}
.btn{border-radius:5px;padding:18px 24px;font-size:14px;gap:23px}
.text-link{font-size:14px;font-weight:500}
.kicker{letter-spacing:.16em;font-size:11px}
.lead{font-size:17px;line-height:1.9}
.title{text-wrap:balance}

/* Home opening */
.hero-stage{background:var(--ink);color:var(--paper);overflow:hidden;position:relative}
.hero-stage:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:#ffffff16}
.hero{grid-template-columns:1fr 1.03fr;gap:8%;padding:65px 0 72px;min-height:690px}
.hero-copy{padding:15px 0}
.hero .display{font-size:clamp(54px,5.5vw,82px);line-height:1.07;letter-spacing:-.05em;margin:27px 0 26px}
.hero .display em{color:#d8bd89}
.hero .kicker{color:#dac496}
.hero .lead{color:#d0d8ce;max-width:430px;font-size:17px;line-height:1.9}
.hero .actions{gap:27px;margin-top:33px}
.hero .btn{background:#eddfc0;color:#243a2d;border-color:#eddfc0}
.hero .btn:hover{background:#fff3d8}
.hero .text-link{border-color:#a7b49a;color:#f4eddb}
.hero-contact{border-top:1px solid #d6dfcd30;padding-top:22px;margin-top:36px;display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:14px;color:#d1d8ca}
.hero-contact a{color:#faf5e7;font-weight:600;letter-spacing:.02em}
.hero-contact span{width:100%;padding-left:27px;font-size:12px;color:#b9c5b3}
.hero-media{padding-left:36px;padding-bottom:35px;min-height:550px}
.hero-main{border-radius:190px 8px 8px 8px;box-shadow:0 22px 60px #0d1a1240}
.hero-main img{object-position:50% 42%}
.hero-secondary{border:7px solid var(--ink);border-radius:5px;width:45%;box-shadow:0 16px 40px #0d1a1250;object-position:50% 35%}
.hero-stamp{color:#c5b991;left:0;font-size:10px;letter-spacing:.19em}
.hero .media-caption{color:#c4cdbb;font-size:10px;bottom:9px;letter-spacing:.09em}
.hero .media-caption b{color:#e8d4a6}
.category-strip{border-top:0}
.category-link{padding:27px 24px;transition:background .2s}
.category-link:hover{background:#ede8d9}
.category-link strong{font-size:25px}
.category-link small{font-size:16px}

/* Material story */
.section{padding-block:100px}
.story-grid{gap:9%;grid-template-columns:1fr 1fr}
.story-photo{height:570px;padding:0 26px 26px 0}
.story-photo img{border-radius:7px;object-position:50% 43%}
.story-photo:after{border-color:#c6c8af;border-radius:7px}
.story-copy .title{font-size:clamp(38px,3.6vw,52px);line-height:1.12}
.material-notes{margin:25px 0 28px}
.material-notes>div{display:grid;grid-template-columns:125px 1fr;gap:18px;border-top:1px solid var(--line);padding:13px 0}
.material-notes dt{font-size:14px;font-weight:600;color:var(--ink)}
.material-notes dd{margin:0;font-size:14px;line-height:1.7;color:var(--muted)}

/* Application overview */
.applications-section{background:#f0eee4;padding-block:80px;border-block:1px solid #e1e1d5}
.applications-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:11%;align-items:start}
.applications-intro .lead{max-width:360px}
.applications-intro .text-link{margin-top:13px}
.application-list>a{display:flex;align-items:start;gap:22px;padding:28px 0;border-top:1px solid #cdd3c4;transition:color .2s}
.application-list>a:last-child{border-bottom:1px solid #cdd3c4}
.application-number{font:italic 18px/1.6 var(--serif);color:var(--bronze)}
.application-list h3{font:400 29px/1.2 var(--serif);letter-spacing:-.03em;margin:0 0 12px}
.application-list p{font-size:15px;color:var(--muted);line-height:1.8;margin:0;max-width:390px}
.application-list .icon{margin-left:auto;margin-top:7px;transition:transform .2s}
.application-list>a:hover{color:var(--bronze)}
.application-list>a:hover .icon{transform:translate(3px,-3px)}

/* Portfolio and learning */
.project-section{background:var(--paper);padding-block:96px}
.project-preview{gap:26px}
.project-photo,.project-card:first-child .project-photo{height:365px;border-radius:8px}
.project-card:nth-child(2){padding-top:34px}
.project-card:nth-child(3){padding-top:68px}
.project-meta{border-color:#cbd3c2;margin-top:18px;padding-top:17px}
.project-meta h3{font-size:26px;line-height:1.25}
.project-meta small{font-size:11px;letter-spacing:.1em;line-height:1.7}
.project-card:hover .project-meta{color:var(--bronze)}
.project-bottom{font-size:14px;border-color:var(--line)}
.knowledge-section{background:#e9eee2;padding-block:88px}
.knowledge-grid{gap:22px}
.knowledge-card{position:relative;border:1px solid #ccd6c2;border-radius:7px;padding:31px 28px 28px;transition:background .2s,border-color .2s,transform .2s}
.knowledge-card:hover{background:#fffdf6;transform:translateY(-4px);border-color:#a5b799}
.knowledge-card h3{font-size:31px;line-height:1.2;max-width:270px;min-height:74px}
.knowledge-card p{font-size:15px;line-height:1.85}
.knowledge-card .kicker{font-size:10px;color:#526c45}
.knowledge-card .text-link{width:100%;justify-content:space-between}

/* Native, keyboard-accessible question disclosures */
.home-faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:11%;padding-block:95px}
.home-faq .lead{max-width:330px}
.home-faq .text-link{margin-top:15px}
.faq details{padding:23px 0}
.faq summary{list-style:none;position:relative;padding-right:35px;font-size:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:0;top:-2px;font:400 26px var(--sans);color:var(--bronze)}
.faq details[open] summary:after{content:"−"}
.faq details p{font-size:16px;line-height:1.9;color:var(--muted)}
.faq p a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.faq summary:focus-visible{outline:2px solid var(--bronze);outline-offset:7px}
.cta{padding-block:68px}
.cta .btn{border-radius:5px}
.footer{background:#edece1}
.footer-grid{gap:65px}
.footer-description{font-size:14px;line-height:1.9;max-width:280px}
.footer-heading{font-size:11px}
.footer-links{font-size:14px;gap:11px}
.footer address{font-size:14px}
.footer-phone{font-size:24px}
.footer-bottom{font-size:12px;border-color:#d2d7c6}

/* Inner pages */
.page-intro{padding-bottom:62px;border-bottom:1px solid var(--line);margin-bottom:38px}
.page-intro .display{font-size:clamp(44px,5vw,70px);line-height:1.09}
.breadcrumb{font-size:12px;letter-spacing:0}
.service-row{scroll-margin-top:115px}
.service-photo{height:400px;border-radius:8px}
.service-copy p{font-size:16px;line-height:1.9}
.service-tags span{font-size:12px;border-radius:3px}
.gallery-toolbar{font-size:13px;margin-top:5px;border-top:0}
.gallery-button{border-radius:7px;background:#e8e2d1}
.gallery figcaption h2{font-size:26px;line-height:1.25}
.gallery figcaption p{font-size:13px;line-height:1.8}
.gallery figcaption small{font-size:16px}
.lightbox{padding:16px;border-radius:7px;box-shadow:0 25px 90px #0b160b60}
.lightbox-close{border-radius:4px;padding:9px 15px}
.contact-image{height:620px;border-radius:8px;overflow:hidden}
.contact-image-note{border-radius:5px}
.contact-info h2{font-size:34px;margin-bottom:14px}
.contact-business-name{font-size:19px;color:#53664f}
.contact-block{padding:24px 0}
.contact-info>.contact-block:first-of-type{background:#edf0e4;padding:22px 20px;border:1px solid #d3dcc8;border-radius:6px;margin-bottom:8px}
.contact-block small{font-size:11px}
.contact-block address{font-size:16px}
.contact-phone{font-size:clamp(24px,2.4vw,34px)}
.guide-nav{background:#eeeade;border-radius:5px;border:0;padding:19px 24px;gap:25px}
.guide-nav a{font-size:14px;font-weight:500}
.article-aside{background:#eeeade;padding:23px 22px;border-radius:6px}
.article-aside nav a{font-size:14px}
.article-layout{gap:65px}
.article-copy p,.article-copy li{font-size:18px;line-height:1.9}
.article-copy>section{padding-bottom:34px;margin-bottom:32px}
.article-copy h2{font-size:39px;line-height:1.2}
.article-callout{background:#edf0e2;border-radius:0 6px 6px 0}
.article-sources p,.article-sources li{font-size:14px}

@media(max-width:1150px){
  .nav-links{gap:18px}.nav-links>a{font-size:13px}
  .hero{gap:5%}.hero-media{min-height:510px}
  .story-grid{gap:7%}.story-photo{height:530px}
  .application-list h3{font-size:26px}.applications-layout,.home-faq{gap:7%}
  .project-meta h3{font-size:23px}.project-photo,.project-card:first-child .project-photo{height:330px}
}
@media(max-width:1050px){
  .nav{height:76px}.nav-links>a{font-size:17px}
  .knowledge-card h3{max-width:none;min-height:0}
  .article-layout{gap:32px}.article-aside{padding:20px 22px}
  .article-aside nav{gap:10px 22px}
}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:37px;padding-top:50px;padding-bottom:50px}
  .hero-copy{max-width:650px}.hero .display{font-size:clamp(56px,9vw,78px)}
  .hero .lead{max-width:530px}.hero-contact{max-width:530px}
  .hero-media{min-height:550px;max-width:600px;width:100%;justify-self:center;margin-left:0}
  .hero-secondary{width:38%}
  .story-grid{gap:6%}.story-photo{height:550px}
  .material-notes>div{grid-template-columns:1fr;gap:3px}
  .category-link{padding:25px 16px;gap:11px}.category-link strong{font-size:23px}
  .applications-layout,.home-faq{grid-template-columns:1fr;gap:32px}
  .applications-intro .lead,.home-faq .lead{max-width:550px}
  .application-list p{max-width:550px}
  .knowledge-section,.project-section{padding-block:70px}
  .project-photo,.project-card:first-child .project-photo{height:290px}
  .project-card:nth-child(2){padding-top:25px}.project-card:nth-child(3){padding-top:50px}
  .footer-grid{gap:35px}.footer-grid>div:first-child{display:block}.footer-description{margin-top:18px}
}
@media(max-width:650px){
  .story-grid{grid-template-columns:1fr;gap:40px}.story-photo{height:440px}
  .section{padding-block:65px}.story-copy .title{font-size:42px}
  .material-notes>div{grid-template-columns:120px 1fr;gap:17px}
  .applications-section,.home-faq{padding-block:65px}
  .project-preview{grid-template-columns:1fr;gap:36px}
  .project-card:nth-child(2),.project-card:nth-child(3){padding-top:0}
  .project-photo,.project-card:first-child .project-photo{height:390px}
  .project-meta h3{font-size:27px}
  .contact-grid{grid-template-columns:1fr;gap:35px}.contact-image{height:440px}.contact-info{order:-1}
  .contact-phone{font-size:32px}
}
@media(max-width:580px){
  .wrap{width:calc(100% - 40px)}.topbar{font-size:10px}.topbar .wrap{gap:10px}
  .hero{padding:37px 0 43px;gap:35px}.hero-copy{padding:0}
  .hero .display{font-size:clamp(51px,13vw,66px);line-height:1.08;margin:24px 0}
  .hero .kicker{font-size:10px;letter-spacing:.12em;gap:9px}.hero .kicker:before{width:18px}
  .hero .lead{font-size:16px;line-height:1.85}.hero .actions{gap:20px;margin-top:26px}
  .btn{font-size:13px;padding:16px 19px;gap:18px}.text-link{font-size:13px;gap:13px}
  .hero-contact{margin-top:29px;padding-top:19px;font-size:14px}
  .hero-media{min-height:410px;padding-left:26px;padding-bottom:33px}
  .hero-main{border-radius:130px 6px 6px 6px}
  .hero-secondary{width:42%;border-width:5px}
  .hero-stamp{font-size:9px;letter-spacing:.12em}.hero .media-caption{font-size:9px;letter-spacing:.03em}
  .category-link,.category-link:first-child{padding:21px 0}.category-link strong{font-size:25px}
  .category-link:hover{background:transparent}
  .lead{font-size:16px}.title{font-size:41px}
  .story-photo{height:400px;padding:0 20px 20px 0}
  .material-notes>div{grid-template-columns:1fr;gap:3px;padding:14px 0}
  .material-notes dt{font-size:15px}.material-notes dd{font-size:15px}
  .application-list>a{gap:15px;padding:24px 0}
  .application-list h3{font-size:27px}.application-list p{font-size:15px}
  .application-list .icon{width:16px;min-width:16px}
  .project-section,.knowledge-section{padding-block:62px}
  .project-photo,.project-card:first-child .project-photo{height:355px}
  .project-bottom{font-size:13px;gap:20px}
  .knowledge-card{padding:27px 24px}.knowledge-card h3{font-size:31px;margin:21px 0 15px}
  .knowledge-card p{font-size:16px}
  .faq summary{font-size:17px}.faq details{padding:22px 0}
  .footer-grid{gap:35px 25px}.footer-bottom{font-size:11px}
  .footer-phone{font-size:23px}.footer-links,.footer address{font-size:13px}
  .page-intro{padding-bottom:34px;margin-bottom:30px}
  .page-intro .display{font-size:46px}.breadcrumb{font-size:11px;margin-bottom:26px}
  .guide-nav{padding:17px 19px;gap:11px 20px}.guide-nav a{font-size:13px}
  .article-copy h2{font-size:32px}.article-copy p,.article-copy li{font-size:17px;line-height:1.9}
  .article-sources p,.article-sources li{font-size:14px}
  .article-aside{padding:19px}.article-aside nav a{font-size:13px}
  .gallery-toolbar{font-size:12px;align-items:start;flex-direction:column;gap:7px}
  .gallery figcaption h2{font-size:27px}.gallery figcaption p{font-size:14px}
  .service-photo{height:310px}.service-copy h2{font-size:37px}
  .contact-image{height:400px}.contact-info h2{font-size:33px}
  .contact-business-name{font-size:18px}.contact-phone{font-size:30px}
}
@media(prefers-reduced-motion:reduce){.knowledge-card:hover{transform:none}}

.hero-copy,.hero-media{animation:none}
