.business-portfolio { --portfolio-blue:#238aaf; --portfolio-dark:#173943; --portfolio-soft:#f0f7fa; --portfolio-line:#d2e3ea; color:var(--portfolio-dark); }
.business-portfolio .header { background:#fff; color:#173943; box-shadow:0 1px 12px rgba(10,55,75,.1); }
.business-portfolio .header .brand img { filter:none; }
.business-portfolio .header .desktop-nav a,.business-portfolio .header .menu-toggle { text-shadow:none; }
.business-portfolio .portfolio-wrap { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.business-portfolio main { padding-top:84px; }
.portfolio-heading { padding:75px 0 44px; }
.portfolio-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:12px; color:#5d7480; font-size:13px; }
.portfolio-breadcrumb a:hover { text-decoration:underline; text-underline-offset:4px; }
.portfolio-eyebrow { display:block; color:var(--portfolio-blue); font-size:12px; font-weight:700; letter-spacing:.18em; margin-top:48px; }
.business-portfolio .portfolio-heading h1 { font-family:Georgia,'Yu Mincho','Hiragino Mincho ProN',serif; font-size:clamp(32px,4vw,52px); font-weight:500; letter-spacing:.07em; line-height:1.5; margin-top:15px; }
.portfolio-heading>p { margin-top:26px; font-size:16px; line-height:1.9; }
.portfolio-type-nav { display:flex; gap:10px; margin:20px 0 40px; }
.portfolio-type-nav a { border:1px solid #b9d0da; min-width:150px; padding:12px 18px; text-align:center; font-size:14px; }
.portfolio-type-nav a[aria-current] { background:var(--portfolio-blue); border-color:var(--portfolio-blue); color:#fff; }
.portfolio-filter-panel { background:var(--portfolio-soft); padding:30px 32px; margin-bottom:50px; }
.portfolio-category-buttons { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 36px; }
.portfolio-category-buttons a { display:flex; justify-content:center; align-items:center; min-height:46px; padding:11px 20px; border:1px solid #8fc9dd; border-radius:0; background:#edf8fc; color:#174f65; font-size:14px; font-weight:600; line-height:1.5; }
.portfolio-category-buttons a:hover,.portfolio-category-buttons a:focus-visible,.portfolio-category-buttons a.selected { background:#238aaf; border-color:#238aaf; color:#fff; }
.portfolio-category-buttons.compact { display:grid; grid-template-columns:1fr; }
@media(max-width:600px) { .portfolio-category-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:28px; } .portfolio-category-buttons a { padding:10px 8px; font-size:12px; } }
.portfolio-filter-accordion { padding:0; margin-bottom:32px; }
.portfolio-filter-accordion>summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 22px; cursor:pointer; list-style:none; font-size:18px; font-weight:700; }
.portfolio-filter-accordion>summary::-webkit-details-marker { display:none; }
.portfolio-filter-accordion>summary span { font-size:23px; font-weight:400; line-height:1; }
.portfolio-filter-accordion[open]>summary span { transform:rotate(45deg); }
.portfolio-filter-accordion>nav { border-top:1px solid var(--portfolio-line); padding:0 22px 22px; }
.portfolio-filter-reset { display:block; width:max-content; margin:16px 0 0 auto; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.portfolio-filter-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid var(--portfolio-line); padding-bottom:18px; }
.business-portfolio .portfolio-filter-heading h2 { font-size:20px; letter-spacing:.04em; line-height:1.5; }
.portfolio-filter-heading>a { font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.portfolio-filter-group { display:grid; grid-template-columns:105px 1fr; gap:16px; padding-top:20px; }
.business-portfolio .portfolio-filter-group h3 { font-size:15px; margin:6px 0 0; }
.portfolio-filter-group>div { display:flex; flex-wrap:wrap; gap:8px; }
.portfolio-filter-group a { background:#fff; border:1px solid var(--portfolio-line); font-size:14px; line-height:1.5; padding:7px 12px; }
.portfolio-filter-group a:hover,.portfolio-filter-group a.selected { background:var(--portfolio-blue); border-color:var(--portfolio-blue); color:#fff; }
.portfolio-results { scroll-margin-top:120px; padding-bottom:100px; }
.portfolio-residential-results { border-top:1px solid var(--portfolio-line); padding-top:72px; }
.portfolio-residential-eyebrow { display:block; color:var(--portfolio-blue); font-size:12px; font-weight:700; letter-spacing:.18em; margin-bottom:10px; }
.portfolio-residential-intro { margin:-10px 0 32px; font-size:15px; line-height:1.9; }
.portfolio-residential-detail { display:inline-flex; align-items:center; gap:15px; color:var(--portfolio-blue); font-size:14px; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:4px; }
.portfolio-results-heading { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--portfolio-line); padding-bottom:15px; margin-bottom:30px; }
.business-portfolio .portfolio-results-heading h2 { font-size:24px; line-height:1.5; }
.portfolio-results-heading p { font-size:14px; }
.portfolio-results-heading strong { font-size:28px; font-weight:500; }
.portfolio-selected { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.portfolio-selected[hidden] { display:none; }
.portfolio-selected a { background:var(--portfolio-blue); color:#fff; padding:7px 13px; font-size:14px; }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:54px 30px; }
.portfolio-card { min-width:0; scroll-margin-top:120px; }
.portfolio-card[hidden] { display:none; }
.portfolio-card-visual { display:flex; justify-content:center; align-items:center; position:relative; aspect-ratio:4/3; overflow:hidden; background:#edf3f6; }
.portfolio-card-visual img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.portfolio-card-visual img[style] { height:auto; }
.portfolio-card-visual:hover img { transform:scale(1.035); }
.portfolio-card-arrow { display:grid; place-items:center; position:absolute; right:0; bottom:0; width:44px; height:44px; background:var(--portfolio-blue); color:#fff; font:30px/1 Arial,sans-serif; }
.portfolio-card-summary { display:flex; flex-direction:column; justify-content:center; width:100%; height:100%; padding:28px; border-top:4px solid var(--portfolio-blue); background:#e8f4f9; }
.portfolio-card-summary>span { color:var(--portfolio-blue); font-size:12px; letter-spacing:.15em; }
.portfolio-card-summary strong { font-size:23px; margin:15px 0; }
.portfolio-card-summary p { font-size:14px; line-height:1.8; }
.portfolio-card-meta { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; color:#607985; font-size:13px; margin:18px 0 10px; }
.portfolio-sector { background:var(--portfolio-blue); color:#fff; font-size:13px; font-weight:700; padding:5px 12px; }
.business-portfolio .portfolio-card h3 { font-size:clamp(17px,1.7vw,22px); line-height:1.6; margin:0 0 13px; }
.portfolio-card h3 a:hover { color:var(--portfolio-blue); text-decoration:underline; text-underline-offset:4px; }
.portfolio-tags { display:flex; flex-wrap:wrap; gap:7px; }
.portfolio-tags a { border:1px solid var(--portfolio-line); background:#fff; color:#365263; padding:4px 10px; font-size:13px; line-height:1.6; }
.portfolio-tags a:hover { background:var(--portfolio-blue); border-color:var(--portfolio-blue); color:#fff; }
.portfolio-empty { text-align:center; background:var(--portfolio-soft); padding:60px 20px; }
.portfolio-empty[hidden] { display:none; }
.business-portfolio .portfolio-empty h3 { font-size:20px; }
.portfolio-empty p { margin:15px 0 22px; }
.portfolio-empty>a { color:var(--portfolio-blue); text-decoration:underline; }
.portfolio-detail-heading { padding:56px 0 40px; }
.portfolio-detail-heading .portfolio-eyebrow { margin-top:35px; margin-bottom:16px; }
.portfolio-detail-heading h1 { font-size:clamp(28px,3.2vw,43px); line-height:1.5; margin-top:22px; }
.portfolio-period { margin-top:16px; font-size:15px; }
.portfolio-period span { color:#657b85; margin-left:10px; }
.portfolio-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:55px; align-items:start; }
.portfolio-detail-main { min-width:0; }
.business-portfolio .portfolio-main-photo { margin:0 0 45px; }
.portfolio-main-photo>div { display:flex; justify-content:center; align-items:center; min-height:240px; background:#edf3f6; }
.portfolio-main-photo img { width:100%; max-height:650px; height:auto; object-fit:contain; }
.portfolio-main-photo figcaption,.portfolio-additional-photo figcaption,.portfolio-extra-grid figcaption { margin-top:10px; font-size:13px; color:#657b85; line-height:1.7; }
.portfolio-main-no-photo { min-height:350px; background:#e8f4f9; border-top:5px solid var(--portfolio-blue); display:flex; flex-direction:column; justify-content:center; align-items:center; gap:20px; text-align:center; margin-bottom:38px; padding:25px; }
.portfolio-main-no-photo span { letter-spacing:.16em; font-size:13px; color:var(--portfolio-blue); }
.portfolio-main-no-photo strong { font-size:30px; }
.business-portfolio .portfolio-overview h2,.business-portfolio .portfolio-section h2 { font-size:24px; border-bottom:2px solid var(--portfolio-blue); padding-bottom:14px; margin-bottom:20px; line-height:1.5; }
.portfolio-overview>p { font-size:16px; line-height:2; margin-bottom:16px; }
.portfolio-overview .portfolio-collection-note { font-size:14px; color:#657b85; }
.portfolio-section { margin-top:45px; }
.portfolio-scope { list-style:none; padding:0; margin:0; }
.portfolio-scope li { position:relative; border-bottom:1px solid var(--portfolio-line); padding:12px 0 12px 20px; line-height:1.8; }
.portfolio-scope li:before { content:''; position:absolute; width:6px; height:6px; left:0; top:25px; background:var(--portfolio-blue); }
.portfolio-facts { margin:0; }
.portfolio-facts>div { display:grid; grid-template-columns:135px 1fr; border-bottom:1px solid var(--portfolio-line); }
.portfolio-facts dt { background:var(--portfolio-soft); padding:20px 15px; font-weight:700; font-size:14px; }
.portfolio-facts dd { margin:0; padding:18px 20px; line-height:1.9; }
.portfolio-back { display:flex; align-items:center; justify-content:center; gap:35px; margin-top:45px; border:1px solid var(--portfolio-blue); padding:20px; color:var(--portfolio-blue); font-weight:700; }
.portfolio-back:hover { background:var(--portfolio-blue); color:#fff; }
.portfolio-sidebar .portfolio-filter-panel { padding:22px; }
.portfolio-sidebar .portfolio-filter-heading { display:block; }
.portfolio-sidebar .portfolio-filter-heading>a { display:inline-block; margin-top:12px; }
.portfolio-sidebar .portfolio-filter-group { display:block; }
.portfolio-sidebar .portfolio-filter-group h3 { margin:0 0 10px; }
.portfolio-sidebar .portfolio-filter-group a { padding:6px 9px; }
.portfolio-additional-photo { margin:35px 0; }
.portfolio-additional-photo img { width:100%; }
.portfolio-extra-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.portfolio-extra-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.portfolio-related { border-top:1px solid var(--portfolio-line); padding:45px 0 90px; margin-top:85px; }
.portfolio-related .portfolio-eyebrow { margin:0 0 12px; }
.business-portfolio .portfolio-related h2 { font-size:27px; margin-bottom:30px; }
.portfolio-contact { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:55px max(40px,calc((100% - 1200px)/2)); color:#fff; background:#176884; }
.portfolio-contact>div:first-child>span { font-size:12px; letter-spacing:.18em; }
.business-portfolio .portfolio-contact h2 { font-size:29px; margin:12px 0; line-height:1.5; }
.portfolio-contact p { font-size:14px; line-height:1.8; }
.portfolio-contact-actions { display:flex; gap:12px; flex-wrap:wrap; }
.portfolio-contact-actions a { display:flex; align-items:center; justify-content:space-between; gap:20px; min-width:190px; background:#fff; color:#176884; padding:15px 17px; font-size:14px; font-weight:700; }
.business-portfolio .business-works-more { display:inline-flex; justify-content:center; align-items:center; }
@media(max-width:900px) { .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .portfolio-detail-layout { grid-template-columns:1fr; } .portfolio-sidebar { order:2; } .portfolio-contact { flex-direction:column; align-items:stretch; } }
@media(max-width:600px) { .business-portfolio .portfolio-wrap { width:calc(100% - 36px); } .business-portfolio main { padding-top:64px; } .portfolio-heading { padding:40px 0 20px; } .portfolio-eyebrow { margin-top:32px; } .business-portfolio .portfolio-heading h1 { font-size:31px; } .portfolio-heading>p { font-size:14px; margin-top:18px; } .portfolio-type-nav { margin:18px 0 28px; } .portfolio-type-nav a { min-width:0; width:50%; padding:11px 9px; font-size:12px; } .portfolio-filter-panel { padding:22px 18px; margin-bottom:34px; } .portfolio-filter-group { grid-template-columns:1fr; gap:8px; } .portfolio-filter-group a { font-size:12px; padding:7px 10px; } .portfolio-grid { grid-template-columns:1fr; gap:42px; } .portfolio-results { padding-bottom:65px; } .portfolio-residential-results { padding-top:48px; } .portfolio-detail-heading { padding:32px 0 30px; } .portfolio-detail-heading h1 { font-size:27px; } .portfolio-main-photo>div { min-height:180px; } .portfolio-facts>div { grid-template-columns:1fr; } .portfolio-facts dt { padding:11px 14px; } .portfolio-facts dd { padding:15px; } .portfolio-extra-grid { grid-template-columns:1fr; } .portfolio-related { margin-top:55px; padding-bottom:65px; } .portfolio-contact { padding:45px 20px 85px; } .portfolio-contact-actions a { width:100%; } }
@media(prefers-reduced-motion:reduce) { .portfolio-card-visual img { transition:none; } }
.portfolio-source { margin-top:18px; font-size:13px; line-height:1.8; }
.portfolio-source a { text-decoration:underline; text-underline-offset:3px; }

.portfolio-resource { margin-top:22px; font-size:14px; line-height:1.9; }
.portfolio-resource-link { color:#0000ee; text-decoration:underline; text-decoration-color:currentColor; text-underline-offset:3px; }
.portfolio-resource-link:focus-visible { outline:2px solid currentColor; outline-offset:5px; }

.portfolio-exterior-view { display:block; width:100%; height:450px; border:0; }
@media(max-width:600px) { .portfolio-exterior-view { height:320px; } }

.portfolio-record-list { list-style:none; padding:0; margin:48px 0 0; }
.portfolio-record { border:0; background:none; }
.portfolio-record[hidden] { display:none; }

.business-portfolio .portfolio-card h3 a { text-decoration:underline; text-decoration-color:#000; text-underline-offset:5px; text-decoration-thickness:1px; }

.portfolio-contact-actions a[href^="tel:"] { flex-wrap:wrap; gap:8px; }

.portfolio-contact-actions a { justify-content:center; min-width:0; text-align:center; }
.portfolio-contact-actions small { font-size:13px; font-weight:400; }

@media(max-width:600px) { .business-portfolio .portfolio-main-photo { margin-bottom:32px; } }
