/* Soft neutral presentation layer for the public catalog. Business markup and
   form behavior remain owned by the existing release templates. */
:root{
  --navy:#17334e;
  --navy-deep:#112a40;
  --green:#218b55;
  --green-pale:#edf5f0;
  --bg:#f4f6f6;
  --line:#e1e7e7;
  --muted:#687788;
  --soft-shadow:0 10px 28px #17334e0a;
}
html body{background:var(--bg);color:var(--navy)}
html body header{background:#fff}
html body .site-nav{gap:18px}
html body .site-nav .brand{font-size:18px}
html body .nav-links{gap:clamp(8px,1.25vw,18px);font-size:14px}
html body .nav-links>a,html body .nav-links summary{min-height:44px}
html body .login-link{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:8px 13px;border:1px solid var(--line);border-radius:11px;background:#fff}
html body .nav-cta,html body .button,html body .btn,html body .button.primary,html body .hero-primary{
  display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:8px;
  border:1px solid #238753;border-radius:12px;
  background:linear-gradient(115deg,#279b60,#147749);color:#fff!important;
  box-shadow:0 6px 16px #176d431f,inset 0 1px 0 #ffffff24;
  font:750 14px/1.2 Inter,system-ui,sans-serif;text-align:center;text-decoration:none;transition:background .18s,box-shadow .18s,transform .18s
}
html body .nav-cta:hover,html body .button:hover,html body .btn:hover,html body .hero-primary:hover{background:linear-gradient(115deg,#218a54,#11683f);box-shadow:0 8px 20px #176d4326}
html body .button:active,html body .btn:active,html body .nav-cta:active{transform:translateY(1px)}
html body .nav-cta:focus-visible,html body .button:focus-visible,html body .btn:focus-visible,html body a:focus-visible,html body button:focus-visible{outline:3px solid #2f9b6b;outline-offset:3px}
html body .nav-cta:disabled,html body .button:disabled,html body .btn:disabled{cursor:wait;opacity:.65}
html body .button.secondary,html body .hero-secondary,html body .outline-action{
  border:1px solid #d7e0e3;border-radius:12px;background:#fff;color:var(--navy)!important;box-shadow:none
}
html body .hero,html body .card,html body .notice,html body .catalog-facets,
html body .directory-card,html body .catalog-card,html body .facts tr,
html body .cp-panel,html body .cp-project,html body .cp-stats{
  border-color:var(--line);border-radius:18px;box-shadow:var(--soft-shadow)
}
html body .catalog-page-header{border-radius:24px;background:linear-gradient(120deg,#e8f0f1,#f2f5f4 58%,#e7f1ee);color:var(--navy)}
html body .catalog-page-header h1,html body .catalog-page-header p{color:var(--navy)}
html body .catalog-page-header .catalog-page-meta{color:#557465}
html body .detail-hero{border:1px solid var(--line);border-radius:24px;background:#fff;color:var(--navy);box-shadow:var(--soft-shadow)}
html body .detail-hero h1,html body .detail-hero>p,html body .detail-hero>p a,html body .detail-hero>.note{color:var(--navy)}
html body .detail-hero>.note{letter-spacing:.06em}
html body .cp-hero{border:1px solid var(--line);border-radius:24px;background:#fff;color:var(--navy);box-shadow:var(--soft-shadow)}
html body .cp-profile .cp-eyebrow,html body .cp-profile .cp-intro h1,html body .cp-profile .cp-location,html body .cp-profile .cp-lead,html body .cp-profile .cp-hint{color:var(--navy)}
html body .cp-profile .cp-lead{color:#526579}
html body .cp-profile .cp-stat b{color:var(--navy)}
html body .cp-profile .cp-stat>span{color:var(--muted)}
html body .cp-profile .cp-identity{display:flex;align-items:center;gap:15px;min-width:0;margin:0 0 13px}
html body .cp-profile .cp-identity h1{min-width:0;margin:0;color:var(--navy);font-size:clamp(25px,2.7vw,35px);line-height:1.15;overflow-wrap:anywhere}
html body .cp-profile .cp-logo{display:grid;width:60px;height:60px;flex:0 0 60px;place-items:center;overflow:hidden;border:1px solid #e0e7e7;border-radius:16px;background:#fff;box-shadow:0 4px 12px #17334e08}
html body .cp-profile .cp-logo img{display:block;width:100%;height:100%;object-fit:contain;padding:7px}
html body .cp-profile .cp-logo-placeholder{background:linear-gradient(145deg,#eef4f1,#f8faf9);color:#4e7564;font:800 21px/1 Manrope,Inter,sans-serif}
html body .cp-profile .cp-location{color:#637385}
html body .cp-profile .cp-lead{color:#526579}
html body .cp-profile .cp-hint{color:#718091}
html body .cp-profile .cp-tag,html body .cp-profile .cp-region,html body .cp-profile .cp-home-region{border-color:#e4e8e6;border-radius:10px;background:#f2f4f3;color:#566374}
html body .cp-profile .cp-region,html body .cp-profile .cp-home-region{background:#edf3ef}
html body .cp-profile .cp-button.cp-primary{border-color:#238753;background:linear-gradient(115deg,#279b60,#147749);color:#fff}
html body .cp-profile .cp-button.cp-ghost{border-color:#d7e0e3;background:#fff;color:var(--navy)}
html body .cp-nav{border-color:var(--line);background:#f4f6f6f2}
html body .cp-profile .cp-nav a[aria-current]{color:var(--green);box-shadow:inset 0 -2px var(--green)}
html body .cp-contact-icon{background:#edf3ef;color:var(--green)}
html body .cp-profile .cp-button:focus-visible,html body .cp-profile a:focus-visible,html body .cp-profile summary:focus-visible{outline-color:#267b51}
html body .home-hero{border-radius:26px;box-shadow:0 16px 42px #17334e12}
html body .catalog-card:hover,html body .directory-card:hover{box-shadow:0 14px 32px #17334e14}
html body input:not([type=checkbox]):not([type=radio]),html body select,html body textarea{border-color:#d7e0e3;border-radius:11px}
html body input:focus-visible,html body select:focus-visible,html body textarea:focus-visible{outline:3px solid #24895a;outline-offset:2px}
html body footer{background:#122f49}
html body footer .footer-grid,html body footer .footer-bottom{border-color:#ffffff1c}
@media(max-width:750px){
  html body .site-nav{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:5px 8px;padding-top:9px;padding-bottom:9px}
  html body .site-nav>.brand{grid-column:1/-1;grid-row:1;min-height:44px}
  html body .site-nav .nav-toggle{display:none}
  html body .site-nav .nav-panel{position:static;display:contents;grid-column:1/-1;max-height:none;overflow:visible;padding:0;border:0;background:transparent;box-shadow:none}
  html body .site-nav .nav-links{display:flex;grid-column:1;grid-row:2;min-width:0;width:auto;gap:clamp(4px,1.5vw,9px);overflow:visible;padding:0;font-size:12px;white-space:nowrap}
  html body .site-nav .nav-links>a:nth-of-type(n+3),html body .site-nav .nav-links>details{display:none}
  html body .site-nav .nav-links>a{min-height:44px;padding:0 1px}
  html body .site-nav .nav-actions{display:flex;grid-column:2;grid-row:2;gap:6px;margin:0;padding:0;border:0;white-space:nowrap}
  html body .site-nav .login-link,html body .site-nav .nav-cta,html body .site-nav .logout-link{min-height:44px;margin:0;padding:7px 10px;border-radius:10px;font-size:12px}
  html body .site-nav .role-chip{display:none!important}
  html body .site-nav .nav-cta{padding-inline:11px}
  html body .cp-hero{border-radius:19px}
  html body .cp-intro{background:#fff}
  html body .cp-profile .cp-identity{gap:12px;margin-bottom:12px}
  html body .cp-profile .cp-identity h1{font-size:clamp(23px,6vw,30px)}
  html body .cp-profile .cp-logo{width:52px;height:52px;flex-basis:52px;border-radius:14px}
  html body .cp-mobile-action{background:#fff;border-color:var(--line);box-shadow:0 -6px 24px #17334e0a}
}
@media(max-width:370px){
  html body .site-nav{column-gap:5px}
  html body .site-nav .brand{font-size:16px}
  html body .site-nav .nav-links{gap:4px;font-size:11px}
  html body .site-nav .nav-actions{gap:4px}
  html body .site-nav .login-link,html body .site-nav .nav-cta{padding:6px 7px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){html body *,html body *::before,html body *::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Approved contractor profile: calm neutral surfaces, real published media and facts. */
html body:has(.cp-profile),html body:has(.detail-page){background:#f5f5f3}
html body .cp-profile{color:#26394b;--cp-line:#e7e9e8;--cp-muted:#74808b}
html body .cp-hero{margin:20px 0 24px;border-color:#e6e9e7;border-radius:26px;background:#fff;box-shadow:0 14px 38px #1c314008}
html body .cp-intro{padding:clamp(24px,3.2vw,42px);background:#fff}
html body .cp-profile .cp-identity{gap:18px;margin-bottom:18px}
html body .cp-profile .cp-identity h1{font-size:clamp(25px,2.55vw,35px);font-weight:700;letter-spacing:-.035em}
html body .cp-profile .cp-logo{width:72px;height:72px;flex-basis:72px;border-color:#e6e8e6;border-radius:19px;background:#f6f7f5;box-shadow:none}
html body .cp-profile .cp-logo img{padding:8px}
html body .cp-profile .cp-logo-placeholder{color:#65737d;font-size:22px}
html body .cp-profile .cp-location{font-size:13px;color:#78838d}
html body .cp-profile .cp-lead{max-width:520px;margin:22px 0 24px;font-size:15px;line-height:1.7;color:#5c6b78}
html body .cp-profile .cp-hint{color:#7a8790}
html body .cp-profile .cp-actions{gap:10px}
html body .cp-profile .cp-button{min-height:46px;border-radius:12px;font-weight:700;box-shadow:none}
html body .cp-profile .cp-button.cp-primary{background:linear-gradient(115deg,#279b60,#147749);box-shadow:0 7px 16px #176d431c;color:#fff}
html body .cp-profile .cp-button.cp-primary:hover{background:linear-gradient(115deg,#218a54,#11683f);box-shadow:0 9px 20px #176d4326;color:#fff}
html body .cp-profile .cp-button.cp-ghost{border-color:#e0e4e3;background:#f7f8f7;color:#34485a}
html body .cp-profile .cp-button.cp-ghost:hover{background:#eef1ef;color:#26394b}
html body .cp-cover{background:#f1f2f0}
html body .cp-cover img{object-fit:cover}
html body .cp-image-label{border:1px solid #ffffff91;border-radius:10px;background:#ffffffed;color:#2d4253;box-shadow:0 4px 16px #17334e12}
html body .cp-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 26px;padding:0;border:0;background:transparent;box-shadow:none}
html body .cp-stat,html body .cp-stat:last-child{min-height:90px;padding:17px 20px;border:1px solid #e9ebe8;border-radius:16px;background:#fff;box-shadow:0 5px 18px #24354804}
html body .cp-stat b{font-size:23px;font-weight:700;color:#32485a}
html body .cp-stat>span{font-size:12px;color:#7a858e}
html body .cp-nav{top:70px;min-height:56px;gap:26px;margin-bottom:34px;border-color:#e7e9e8;background:#f4f6f5f2}
html body .cp-nav a{font-size:13px;color:#526273}
html body .cp-profile h2{font-size:clamp(22px,2.1vw,27px);font-weight:700;letter-spacing:-.025em}
html body .cp-section{margin-bottom:38px}
html body .cp-panel,html body .cp-project{border-color:#e7e9e7;border-radius:21px;box-shadow:0 7px 24px #24354805}
html body .cp-panel{padding:28px}
html body .cp-project{padding:8px}
html body .cp-project-image{overflow:hidden;border-radius:15px;background:#f3f4f2}
html body .cp-project .directory-media{border-radius:15px;background:#f3f4f2}
html body .cp-project-body{padding:19px 13px 13px}
html body .cp-profile .cp-project h3{font-size:20px;font-weight:700;letter-spacing:-.02em}
html body .cp-profile .cp-price{font-size:16px;font-weight:700}
html body .cp-project .cp-button{border-color:#e4e7e8;background:#f6f7f7;color:#34485a}
html body .cp-project .cp-button:hover{background:#ebeff0;color:#26394b}
html body .cp-about{color:#576675;line-height:1.8}
html body .cp-tag,html body .cp-region,html body .cp-home-region{border-color:#e9ebeb;border-radius:10px;background:#f4f5f5;color:#586777}
html body .cp-sidebar .cp-panel{border:0;background:#eeefee;box-shadow:none}
html body .cp-sidebar h2{font-size:22px}
html body .cp-contact-icon{background:#fff;color:#526c5d}
html body .cp-photo{background:#f3f4f2}
html body .cp-details summary{color:#34485a}

/* Approved project direction: a light two-column project introduction. The
   same published fields, images, packages and working request URL stay intact. */
html body .detail-page{max-width:1160px;color:#26394b}
html body .detail-hero{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(300px,.86fr);align-content:center;column-gap:clamp(24px,3.4vw,48px);row-gap:13px;min-height:350px;margin:20px 0 32px;padding:clamp(24px,3.2vw,40px);border-color:#e6e9e7;border-radius:26px;background:#fff;box-shadow:0 14px 38px #1c314008}
html body .detail-hero>:not(.media){grid-column:2;min-width:0;margin:0}
html body .detail-hero>.media{grid-column:1;grid-row:1 / span 6;width:100%;height:100%;min-height:300px;max-height:500px;margin:0;border-radius:18px;background:#f1f2f0;object-fit:contain}
html body .detail-hero:not(:has(>.media)){grid-template-columns:1fr;min-height:0}
html body .detail-hero:not(:has(>.media))>*{grid-column:1}
html body .detail-hero>.note{align-self:end;color:#70827a;font-size:11px;font-weight:750;letter-spacing:.1em}
html body .detail-hero h1{font-size:clamp(28px,3vw,40px);font-weight:700;line-height:1.15;letter-spacing:-.035em;color:#26394b}
html body .detail-hero>p:not(.note){color:#657583;font-size:14px;line-height:1.65}
html body .detail-hero>p a{color:#285c74;text-decoration-color:#a5bdc5}
html body .detail-hero .button-row{align-self:start;display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}
html body .detail-hero .button-row .button{min-height:46px}
html body .detail-page>section{margin:30px 0}
html body .detail-page>section>h2{font-size:clamp(22px,2.1vw,27px);font-weight:700;letter-spacing:-.025em}
html body .detail-page .facts{border-spacing:0 9px}
html body .detail-page .facts th,html body .detail-page .facts td{padding:14px 17px;border-color:#e9ecea;background:#fff}
html body .detail-page .facts th{color:#77848d;font-weight:600}
html body .detail-page .facts td{color:#34485a;font-weight:650}
html body .detail-page .media-groups{gap:17px}
html body .detail-page .media-group{padding:20px;border-color:#e8ebe9;border-radius:20px;background:#fff;box-shadow:0 6px 22px #24354805}
html body .detail-page .media-group h3{font-size:18px;font-weight:700}
html body .detail-page .media-strip .media{border-radius:12px;background:#f4f5f3}
html body .detail-page .notice{border-color:#e8ebe9;border-radius:19px;background:#fff;box-shadow:0 6px 22px #24354805}
html body .detail-page .notice h2{font-size:20px}
html body .project-scroll-cta{border:1px solid #e3e9e6;background:#fff;color:#26394b;box-shadow:0 7px 20px #17334e15}
html body .project-scroll-title{color:#26394b}
html body .project-scroll-title small{color:#75848a}
html body .project-scroll-title strong{color:#26394b}

@media(max-width:900px){
  html body .cp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  html body .detail-hero{grid-template-columns:minmax(0,1fr) minmax(270px,.9fr);gap:20px}
}
@media(max-width:750px){
  html body .cp-hero{grid-template-columns:1fr}
  html body .cp-intro{padding:27px 23px}
  html body .cp-profile .cp-logo{width:58px;height:58px;flex-basis:58px;border-radius:16px}
  html body .cp-profile .cp-identity h1{font-size:clamp(23px,6vw,30px)}
  html body .cp-nav{position:static;gap:12px;overflow-x:auto;white-space:nowrap}
  html body .cp-nav a{flex:none;font-size:12px}
  html body .detail-hero{grid-template-columns:1fr;gap:15px;padding:22px;border-radius:20px}
  html body .detail-hero>:not(.media),html body .detail-hero>.media{grid-column:1;grid-row:auto}
  html body .detail-hero>.media{order:-1;min-height:0;max-height:380px;aspect-ratio:4/3}
  html body .detail-hero .button-row{display:flex}
}
@media(max-width:560px){
  html body .cp-stats{gap:7px;margin-bottom:22px}
  html body .cp-stat,html body .cp-stat:last-child{min-height:82px;padding:13px 12px}
  html body .cp-stat b{font-size:20px}
  html body .cp-stat>span{font-size:11px}
  html body .cp-project{padding:7px}
  html body .cp-panel{padding:22px}
  html body .cp-mobile-action{background:#fff}
  html body .detail-hero{margin-top:12px;padding:17px}
  html body .detail-hero h1{font-size:29px}
  html body .detail-hero>.media{max-height:300px}
  html body .detail-hero .button-row{display:grid;grid-template-columns:1fr}
  html body .detail-page .facts tr{border-color:#e8ebe9}
  html body .detail-page .facts th,html body .detail-page .facts td{padding:0;border:0;background:transparent}
}
.catalog-region-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:22px 0;padding:18px 20px;border:1px solid #dce6df;border-radius:18px;background:#fff}
.catalog-region-form label{display:grid;gap:6px;min-width:min(100%,280px);font-size:13px;font-weight:700}
.catalog-region-form input{min-height:46px;width:100%;padding:10px 13px;border:1px solid #cbd9d1;border-radius:11px;background:#fff;font-size:15px}
.catalog-region-form .button{min-height:46px;border-radius:11px}
#contractor-region-status{margin:12px 0;color:#3c6451;font-size:14px;font-weight:700}
.catalog-page .directory-grid>.notice{grid-column:1/-1}
