:root{--paper:#f7f6f2;--ink:#152b3b;--muted:#60717b;--line:#d8dfdf;--blue:#337ea9;--light:#edf1f1;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif;font-size:15px;line-height:1.9}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500;line-height:1.5}p+p{margin-top:22px}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:6px}button{font:inherit}.wrap{max-width:1340px;width:calc(100% - 112px);margin:auto}.header{height:100px;display:flex;align-items:center;padding:0 56px;gap:28px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(247,246,242,.97);z-index:20}.logo img{width:105px;height:50px;object-fit:contain}.header-note{font-size:10px;letter-spacing:.17em;color:var(--muted)}nav{margin-left:auto;display:flex;gap:36px}nav a{font-size:13px;letter-spacing:.06em;padding:8px 0;border-bottom:1px solid transparent}nav a:hover,nav a[aria-current]{border-color:var(--blue);color:var(--blue)}.menu-toggle{display:none}.skip{position:fixed;top:-60px;left:20px;background:white;z-index:100;padding:8px 16px}.skip:focus{top:10px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.16em;line-height:1.6;text-transform:uppercase;color:var(--muted);margin-bottom:26px}.eyebrow span{margin-right:22px;color:var(--blue)}.blue{color:var(--blue)}.home-hero{padding-top:82px;padding-bottom:28px;display:grid;grid-template-columns:1fr 310px;column-gap:50px}.home-hero h1{font-size:clamp(38px,5.2vw,76px);font-weight:500;letter-spacing:.035em;line-height:1.45}.hero-side{align-self:end;padding-bottom:14px;color:var(--muted);font-size:15px;line-height:2.1}.hero-side .text-link{margin-top:25px}.hero-caption{grid-column:1/-1;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em;margin-top:62px}.panorama{margin:0 24px;position:relative;height:350px;overflow:hidden;background:var(--ink)}.panorama img{width:100%;height:100%;object-fit:cover;object-position:center 56%;filter:brightness(.78)}.panorama>span{position:absolute;bottom:34px;left:40px;font-size:clamp(22px,3vw,42px);color:#fff;line-height:1.2;letter-spacing:.05em}.home-about{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:110px;padding-bottom:110px}.home-about h2,.section-heading h2{font-size:36px;line-height:1.65;letter-spacing:.04em}.home-about>div>p{color:var(--muted);max-width:580px}.home-about .large-copy{font-size:23px;color:var(--ink);line-height:1.9;margin-bottom:28px}.text-link{display:inline-block;font-size:13px;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-top:24px}.text-link:hover{color:var(--blue);border-color:var(--blue)}.business-home{background:var(--light);padding:90px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:56px}.section-heading>p{color:var(--muted);font-size:14px;line-height:2}.directory{border-top:1px solid var(--line)}.directory-row{display:grid;grid-template-columns:64px 1.1fr 1fr 30px;align-items:center;gap:20px;padding:27px 8px;border-bottom:1px solid var(--line);transition:padding .2s,color .2s}.directory-row:hover{padding-left:20px;color:var(--blue)}.row-number{color:var(--blue);font-size:11px;letter-spacing:.12em}.directory-row strong{font-size:23px;font-weight:500;letter-spacing:.01em}.row-jp{font-size:13px;color:var(--muted)}.arrow{font-size:25px}.contact-band{padding-top:85px;padding-bottom:85px;display:flex;justify-content:space-between;align-items:center;gap:30px}.contact-band h2{font-size:29px}.contact-band .eyebrow{margin-bottom:12px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:36px;padding:17px 25px;background:var(--ink);color:#fff;font-size:13px;line-height:1.5;transition:background .2s}.button:hover{background:var(--blue)}.button span{font-size:20px}footer{background:var(--ink);color:#fff;padding:62px 56px 24px}.footer-top,.footer-bottom{max-width:1340px;margin:auto;display:flex;justify-content:space-between;gap:25px}.footer-word{font-size:48px;font-weight:300;letter-spacing:.06em;line-height:1}.footer-word span{display:block;font-size:11px;letter-spacing:.07em;color:#b9c6ce;margin-top:20px}.footer-top>div{display:flex;gap:32px;font-size:12px;align-items:center}.footer-bottom{border-top:1px solid #3b4b58;padding-top:22px;margin-top:55px;font-size:10px;letter-spacing:.05em;color:#bdcad2}.page-intro{padding-top:80px;padding-bottom:75px;border-bottom:1px solid var(--line)}.page-intro h1{font-size:clamp(34px,4.4vw,58px);letter-spacing:.04em}.intro-text{max-width:680px;color:var(--muted);font-size:16px;margin-top:28px;line-height:2}.business-row{display:grid;grid-template-columns:40px 330px 1fr;gap:35px;padding:58px 0;border-bottom:1px solid var(--line);align-items:start;scroll-margin-top:120px}.business-image img{width:100%;height:240px;object-fit:cover}.business-copy .eyebrow{margin-bottom:8px;font-size:9px}.business-copy h2{font-size:29px}.business-jp{font-size:12px;color:var(--blue);margin-top:6px}.business-copy>p:not(.eyebrow):not(.business-jp){color:var(--muted);font-size:14px;line-height:2;margin-top:16px;max-width:620px}.breadcrumb{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--muted);padding-top:32px}.breadcrumb a:hover{color:var(--blue)}.detail-hero{padding-top:48px;padding-bottom:80px;display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.detail-logo{height:46px;max-width:230px;object-fit:contain;object-position:left;margin:25px 0 35px}.detail-wordmark{font-size:33px;letter-spacing:.1em;margin:25px 0 35px}.detail-wordmark span{font-size:15px;letter-spacing:.2em;display:block;margin-top:4px}.detail-hero h1{font-size:clamp(26px,2.8vw,38px);line-height:1.65}.detail-hero p:not(.eyebrow):not(.detail-wordmark){margin-top:24px;color:var(--muted);font-size:15px;line-height:2}.detail-hero .button{margin-top:30px}.detail-hero-image{width:100%;height:440px;object-fit:cover;background:var(--light)}.detail-body{display:grid;grid-template-columns:1fr 1.6fr;gap:75px;border-top:1px solid var(--line);padding-top:65px;padding-bottom:70px}.detail-body h2{font-size:25px}.audience{font-size:14px;color:var(--muted);margin-top:22px;max-width:360px}.detail-point{display:grid;grid-template-columns:35px 1fr;gap:18px;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid var(--line)}.detail-point h3{font-size:21px;margin-bottom:12px}.detail-point p{color:var(--muted);font-size:14px;line-height:2}.scene-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.scene-pair img{aspect-ratio:4/3;object-fit:cover;width:100%}.scene-pair figcaption{font-size:12px;color:var(--muted);margin-top:10px}.detail-contact{border-top:1px solid var(--line);padding-top:40px;padding-bottom:40px;display:flex;justify-content:space-between;gap:30px;align-items:center}.detail-contact h2{font-size:23px}.detail-contact p{font-size:13px;color:var(--muted);margin-top:12px}.detail-contact .text-link{margin:0}.next-business{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:30px 0 65px;font-size:12px}.company-story{display:grid;grid-template-columns:1fr 1.3fr;gap:90px;padding-top:75px;padding-bottom:75px}.company-story h2{font-size:34px}.company-story p{color:var(--muted);line-height:2.1}.company-facts{padding-bottom:70px}.company-facts dl{margin:0}.company-facts dl>div{display:grid;grid-template-columns:230px 1fr;padding:24px 0;border-top:1px solid var(--line);gap:40px}.company-facts dt{font-size:13px}.company-facts dd{margin:0;font-size:14px;color:var(--muted)}.contact-main{display:grid;grid-template-columns:1.2fr 1fr;gap:75px;padding-top:70px;padding-bottom:80px}.email-large{font-size:clamp(22px,3vw,40px);letter-spacing:-.025em;display:inline-block;border-bottom:1px solid var(--ink);margin-bottom:25px}.contact-main p{color:var(--muted);font-size:14px}.contact-guide h2{font-size:22px}.contact-guide ul{padding-left:20px;color:var(--muted);font-size:14px;line-height:2.3}.offices{padding-bottom:90px}.offices>div{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);gap:45px}.office{padding-top:30px}.office h2{font-size:22px;margin:14px 0 20px}.office address{font-style:normal;font-size:13px;color:var(--muted);min-height:90px;line-height:1.9}.office>a{display:block;font-size:13px;width:fit-content}.office .text-link{margin-top:10px}
@media(min-width:1500px){.panorama{height:430px}}@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header{padding:0 32px}.header-note{display:none}.home-hero{grid-template-columns:1fr 240px;gap:25px}.home-hero h1{font-size:48px}.home-about{gap:45px}.business-row{grid-template-columns:26px 260px 1fr;gap:25px}.business-image img{height:210px}.detail-hero{gap:35px}.detail-hero-image{height:380px}.detail-body{gap:40px}.contact-main{gap:40px}.offices>div{gap:25px}footer{padding-left:32px;padding-right:32px}}
@media(max-width:760px){html{scroll-padding-top:80px}.wrap{width:calc(100% - 40px)}.header{height:76px;padding:0 20px}.logo img{width:85px;height:40px}.menu-toggle{display:flex;gap:20px;align-items:center;margin-left:auto;background:none;border:0;font-size:12px;padding:8px;cursor:pointer}.menu-toggle span{font-size:22px}nav{display:none;position:absolute;top:76px;left:0;right:0;padding:22px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:6px}nav.open{display:flex}nav a{font-size:16px;padding:13px 0}.home-hero{display:block;padding-top:45px;padding-bottom:20px}.home-hero h1{font-size:clamp(32px,7.8vw,50px);letter-spacing:0}.eyebrow{font-size:9px;letter-spacing:.09em;margin-bottom:20px}.eyebrow span{margin-right:12px}.hero-side{margin-top:24px;font-size:13px;line-height:1.9}.hero-side br{display:none}.hero-side p{max-width:320px}.hero-side .text-link{margin-top:16px}.hero-caption{margin-top:32px;font-size:8px;letter-spacing:.05em}.hero-caption span:last-child{display:none}.panorama{margin:0 12px;height:240px}.panorama>span{left:22px;bottom:24px;font-size:25px}.home-about{grid-template-columns:1fr;gap:32px;padding-top:60px;padding-bottom:60px}.home-about h2,.section-heading h2{font-size:29px}.home-about .large-copy{font-size:19px}.home-about p{font-size:14px}.business-home{padding:55px 0}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:22px;font-size:13px}.directory-row{grid-template-columns:28px 1fr 20px;gap:8px;padding:20px 0}.directory-row strong{font-size:20px}.row-jp{grid-column:2;grid-row:2;font-size:11px}.directory-row .arrow{grid-column:3;grid-row:1/3;font-size:22px}.contact-band{display:block;padding-top:50px;padding-bottom:50px}.contact-band h2{font-size:24px}.contact-band .button{margin-top:24px}.footer-top{display:block}.footer-top>div{gap:24px;margin-top:36px}.footer-word{font-size:38px}.footer-bottom{flex-direction:column;gap:6px;margin-top:35px}footer{padding:42px 20px 24px}.page-intro{padding-top:46px;padding-bottom:40px}.page-intro h1{font-size:34px}.intro-text{font-size:14px;margin-top:22px}.business-row{grid-template-columns:25px 1fr;gap:20px 12px;padding:34px 0}.business-image{grid-column:2}.business-image img{height:auto;aspect-ratio:16/10}.business-copy{grid-column:2}.business-copy h2{font-size:25px}.business-copy .text-link{margin-top:18px}.breadcrumb{font-size:10px;gap:10px;padding-top:25px}.detail-hero{grid-template-columns:1fr;gap:35px;padding-top:30px;padding-bottom:40px}.detail-hero-image{height:auto;aspect-ratio:4/3}.detail-hero h1{font-size:28px}.detail-logo{height:38px;margin:20px 0 28px}.detail-body{grid-template-columns:1fr;gap:35px;padding-top:35px;padding-bottom:35px}.detail-body h2{font-size:23px}.audience{max-width:none}.detail-point{gap:10px;grid-template-columns:24px 1fr}.detail-point h3{font-size:20px}.scene-pair{gap:12px}.scene-pair figcaption{font-size:11px}.detail-contact{display:block;padding:30px 0}.detail-contact h2{font-size:21px}.detail-contact .text-link{margin-top:20px}.next-business{font-size:11px;padding-bottom:40px}.company-story{grid-template-columns:1fr;gap:25px;padding-top:40px;padding-bottom:45px}.company-story h2{font-size:28px}.company-story p{font-size:14px}.company-facts{padding-bottom:30px}.company-facts dl>div{grid-template-columns:1fr;gap:8px;padding:20px 0}.company-facts dt{color:var(--blue)}.company-facts dd{font-size:13px}.contact-main{grid-template-columns:1fr;gap:40px;padding:40px 0}.contact-guide ul{font-size:13px}.offices{padding-bottom:50px}.offices>div{grid-template-columns:1fr;gap:0}.office{padding:28px 0;border-bottom:1px solid var(--line)}.office address{min-height:0;margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Homepage business stories: images and plain-language service names. */
.business-home { background: var(--paper); border-top: 1px solid var(--line); }
.home-business-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 66px 48px; }
.home-business-visual { display: block; position: relative; overflow: hidden; background: #edf0f0; }
.home-business-visual img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; transition: transform .35s ease; }
.home-business-visual:hover img { transform: scale(1.025); }
.visual-arrow { position: absolute; bottom: 18px; right: 18px; width: 42px; height: 42px; display: grid; place-items: center; background: var(--paper); color: var(--ink); font-size: 22px; }
.home-business-caption { padding: 25px 0 0; }
.home-business-caption .eyebrow { margin-bottom: 10px; font-size: 10px; }
.home-business-caption h3 { font-size: clamp(23px, 2.3vw, 31px); line-height: 1.5; }
.home-business-caption h3 a:hover { color: var(--blue); }
.home-business-brand { font-size: 15px; color: var(--blue); margin-top: 8px; letter-spacing: .025em; }
.home-business-description { font-size: 14px; color: var(--muted); line-height: 1.95; margin-top: 16px; max-width: 540px; }
.home-business-caption .text-link { margin-top: 18px; }
.business-home .wrap > .text-link { margin-top: 50px; }
@media (max-width: 760px) {
  .home-business-gallery { grid-template-columns: 1fr; gap: 44px; }
  .home-business-caption { padding-top: 20px; }
  .home-business-caption h3 { font-size: 25px; }
  .home-business-description { font-size: 13px; }
  .visual-arrow { width: 36px; height: 36px; bottom: 12px; right: 12px; }
}

.logo img { width: 150px; height: 40px; }
.footer-word > img { width: 180px; height: 48px; }
@media(max-width:760px) { .logo img { width: 120px; height: 32px; } }

.product-lineup { padding-top: 60px; padding-bottom: 75px; border-top: 1px solid var(--line); }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 48px 28px; }
.product-item img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: contain; background: white; }
.product-item .eyebrow { margin: 22px 0 10px; font-size: 9px; }
.product-item h3 { font-size: 25px; }
.product-item h3 span { display: block; font-size: 12px; color: var(--muted); margin-top: 4px; }
.product-item > p:not(.eyebrow) { color: var(--muted); font-size: 13px; margin-top: 15px; }
.product-item .text-link { font-size: 11px; margin-top: 15px; }
.detail-hero-image[src$="palo-santo.webp"] { object-fit: contain; background: white; }
@media(max-width:1000px) { .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .product-lineup { padding-top: 35px; padding-bottom: 40px; } .product-grid { grid-template-columns: 1fr; gap: 38px; } }

.home-news { padding-top: 75px; padding-bottom: 70px; border-top: 1px solid var(--line); }
.home-news .section-heading { margin-bottom: 28px; }
.home-news h2 { font-size: 32px; }
.news-entry { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 35px; padding: 30px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 120px; }
.news-meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px 22px; font-size: 11px; }
.news-meta time { font-variant-numeric: tabular-nums; color: var(--muted); letter-spacing: .04em; }
.news-meta span { color: var(--blue); font-size: 10px; }
.news-entry h3 { font-size: 16px; line-height: 1.9; }
.news-entry h3 a:hover { color: var(--blue); }
.news-entry h3 a span { white-space: nowrap; margin-left: 8px; }
.news-archive { padding-top: 15px; padding-bottom: 50px; }
@media(max-width:760px) { .news-entry { grid-template-columns: 1fr; gap: 12px; padding: 24px 0; } .news-entry h3 { font-size: 14px; } .home-news { padding: 45px 0; } .home-news .section-heading > .text-link { margin-top: 18px; } .footer-top > div { flex-wrap: wrap; gap: 16px 24px; } }
