/* v2 visual system: compact, editorial, all-sans typography, light/dark surfaces. */
:root{
  --sans:'DM Sans','Segoe UI',sans-serif;
  --serif:'Plus Jakarta Sans','Segoe UI',sans-serif;
  --pine:#183d36;--pine-dark:#12332e;--cream:#f7f8f5;--ivory:#fafbf9;
  --ink:#1e302c;--muted:#6d7c76;--gold:#b58957;--border:#e3e9e5;
  --page:#fafbf9;--surface:#fff;--soft:#f2f6f2;--subtle:#e7ede8;
  --brand:#183d36;--text:#233932;--secondary:#6d7e75;--line:#e3e9e4;
  --accent:#b58957;--elevation:0 16px 46px rgba(19,53,44,.07);
}
html[data-theme='dark']{
  --pine:#e9f0ea;--pine-dark:#112823;--cream:#15221f;--ivory:#111c19;
  --ink:#eaf0ec;--muted:#a0b4a9;--gold:#d7b37c;--border:#2b4038;
  --page:#101b18;--surface:#192823;--soft:#1f302a;--subtle:#2c4339;
  --brand:#c1e0cf;--text:#e8efe9;--secondary:#a0b4a9;--line:#2d443a;
  --accent:#d7b37c;--elevation:0 16px 46px rgba(0,0,0,.22);
}
html{scroll-padding-top:80px}
body{background:var(--page);color:var(--text);font-size:14px;line-height:1.65;font-family:var(--sans);transition:background .22s,color .22s}
.container{width:min(1180px,calc(100% - 54px))}
h1,h2,h3,h4,.brand-copy b,.footer-brand b{font-family:var(--serif)!important;font-style:normal;letter-spacing:-.045em}
h1 em,h2 em{font-style:normal;color:var(--accent);font-weight:inherit}
.ui-icon{display:inline-block;flex:0 0 auto;width:17px;height:17px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.btn .ui-icon,.nav-cta .ui-icon,.outline-link .ui-icon{width:17px;height:17px}
.top-strip{height:30px;background:#112f2b;font-size:10px;color:#d6e4dc}
.top-strip-inner{height:30px}
.site-header{background:var(--surface);border-color:var(--line);box-shadow:0 4px 22px rgba(22,54,46,.035)}
.nav-shell{height:72px;gap:18px}
.brand{gap:11px;min-width:0}
.brand-symbol img{height:47px;width:47px;border-radius:13px}
.brand-copy{gap:3px;letter-spacing:0}
.brand-copy b{font-size:17px;letter-spacing:-.025em;color:var(--text);white-space:nowrap}
.brand-copy small{font-size:8px;letter-spacing:.12em;color:var(--accent)}
.desktop-nav{gap:23px;font-size:11px;font-weight:700}
.desktop-nav a:hover{color:var(--accent)}
.nav-cta{padding:11px 16px;background:#173f38;color:#fff;border-radius:9px;font-size:11px}
.nav-cta:hover{background:#256355}
.theme-toggle,.back-to-top{border:1px solid var(--line);background:var(--surface);color:var(--text);width:40px;height:40px;border-radius:11px;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:transform .2s,background .2s,border .2s,opacity .2s}
.theme-toggle:hover,.back-to-top:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent)}
.theme-toggle .ui-icon,.back-to-top .ui-icon{width:20px;height:20px}
.back-to-top{position:fixed;bottom:24px;right:24px;z-index:120;width:46px;height:46px;background:#193f38;border-color:#193f38;color:#fff;border-radius:50%;box-shadow:0 14px 36px #122a2450;opacity:0;pointer-events:none;transform:translateY(15px)}
.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.back-to-top.visible:hover{transform:translateY(-3px);color:#fff;background:#2b6153}
.hero{background:var(--soft)}
.hero:before,.hero-outline,.hero-scroll,.hero-assurance,.floating-note{display:none!important}
.hero-grid{grid-template-columns:51% 49%;min-height:560px}
.hero-copy{padding:65px 48px 65px 0}
.eyebrow{font-size:10px;letter-spacing:.13em;color:var(--accent);gap:8px}
.eyebrow-line{width:19px}
.hero h1{font-size:clamp(43px,4.5vw,62px);line-height:1.14;font-weight:800;color:var(--text);margin:19px 0 22px;letter-spacing:-.06em}
.hero-description{font-size:14px;line-height:1.9;color:var(--secondary);max-width:430px}
.hero-actions{margin-top:28px;gap:12px}
.btn{border-radius:10px;padding:13px 20px;font-size:12px;font-weight:700;box-shadow:none}
.btn-primary{background:#173f38;color:#fff}
.btn-primary:hover{background:#276255}
.btn-ghost{background:transparent;color:var(--text);padding:13px 14px}
.hero-photo-wrap{height:505px;margin:0;align-self:center}
.hero-photo{inset:0;border-radius:20px;box-shadow:var(--elevation)}
.hero-photo img{filter:saturate(.83) contrast(1.03)}
.photo-shade{background:linear-gradient(0deg,rgba(17,47,40,.27),transparent 55%)}
.hero-photo-caption{left:30px;bottom:30px}
.hero-photo-caption b{font-size:24px;letter-spacing:-.04em}
.hero-photo-caption>span:first-child{font-size:9px}
.promise-bar{background:#173d36}
.promise-grid{min-height:68px}
.promise-grid div{border-color:#54756b;font-size:11px}
.section{padding:78px 0}
.section-heading{margin-bottom:30px}
.section-heading>p,.about-copy>p:nth-of-type(2),.process-top>p,.contact-card>p,.contact-card-note{display:none!important}
.section h2,.about-section h2,.quote-section h2,.contact-section h2{font-size:clamp(32px,3.5vw,46px);line-height:1.19;font-weight:800;color:var(--text);letter-spacing:-.055em;margin:12px 0 0}
.section-heading>p{color:var(--secondary);font-size:12px;line-height:1.8}
.services-section,.articles-section{background:var(--page)}
.service-grid{gap:16px}
.service-card{background:var(--surface);border-color:var(--line);border-radius:16px;overflow:hidden;box-shadow:0 6px 25px rgba(18,58,47,.025)}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--elevation)}
.service-photo{height:188px}
.service-photo>img{filter:saturate(.77)}
.service-number{font-family:var(--serif);font-weight:700;font-size:15px;top:15px;left:17px;letter-spacing:.04em}
.service-icon{width:43px;height:43px;background:#b58c58;border-radius:11px 0 0 0}
.service-icon .ui-icon{width:20px;height:20px}
.service-card-body{padding:20px 19px 22px}
.service-card h3{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.04em;line-height:1.45;margin:0 0 7px}
.service-card p{font-size:12px;line-height:1.7;color:var(--secondary);min-height:60px;margin:0 0 15px}
.service-link,.text-link,.article-read{color:var(--accent);font-size:11px;letter-spacing:0}
.about-section{background:var(--soft);padding:80px 0}
.about-grid{grid-template-columns:43% 57%;gap:55px}
.about-visual{height:430px}
.about-image{inset:0;border-radius:18px}
.about-image img{filter:saturate(.8)}
.about-image-frame,.about-stamp{display:none}
.about-copy p{color:var(--secondary);font-size:13px;line-height:1.85;margin:13px 0 0}
.about-values{margin-top:23px;border-color:var(--line)}
.about-value{padding:10px 0;border-color:var(--line)}
.about-value>span{width:36px;height:36px;background:var(--subtle);color:var(--accent)}
.about-value>span .ui-icon{width:18px;height:18px}
.about-value b{font-family:var(--serif);color:var(--text);font-size:14px;font-weight:800}
.about-value small{color:var(--secondary);font-size:11px}
.process-section{background:#173c35;padding:78px 0}
.process-section:before{display:none}
.process-top h2{color:#fff}
.process-top p{color:#b5c8bb;font-size:12px;line-height:1.8}
.steps-grid{margin-top:42px;gap:27px}
.step-top span{font-family:var(--serif);font-size:29px;font-weight:800;color:#d0af7b}
.step-line{background:#5d756d}
.step h3{font-family:var(--serif);font-size:17px;font-weight:700;margin:13px 0 8px}
.step p{font-size:11px;line-height:1.75}
.process-bottom{margin-top:36px;padding-top:18px}
.process-bottom>span{display:none}
.quote-section{display:none}
.articles-section .outline-link{background:var(--surface);border-color:var(--line);border-radius:9px;color:var(--text)}
.article-image{height:215px;border-radius:14px;background:var(--subtle)}
.article-image img{filter:saturate(.84)}
.article-meta{font-size:10px;margin-top:13px;color:var(--accent)}
.article-card h3{font-size:18px;font-weight:800;line-height:1.45;color:var(--text);margin:9px 0}
.article-card p{font-size:12px;line-height:1.8;color:var(--secondary)}
.contact-section{background:#153a33;padding:72px 0}
.contact-section:before{display:none}
.contact-section h2{color:#fff}
.contact-card{background:#f4f5ef;border-radius:17px;padding:30px 34px;box-shadow:none}
.contact-number{font-family:var(--serif);font-size:39px;font-weight:800;letter-spacing:-.055em}
.contact-card p{margin:6px 0 20px}
.btn-gold{background:#b18a54;color:#fff}
.footer{background:#102d28}
.footer-grid{padding:48px 0 38px;gap:55px}
.footer-brand img{width:45px;height:45px}
.footer-brand b{font-size:18px;letter-spacing:-.035em}
.footer h4{font-size:14px;font-weight:700;letter-spacing:-.01em;margin-bottom:15px}
.footer-about>p{line-height:1.8;margin-top:13px}
.footer-bottom{padding:14px 0}
.page-banner{background:var(--soft);padding:54px 0}
.page-banner h1{font-size:clamp(33px,4.3vw,49px);font-weight:800;color:var(--text)}
.page-banner p{font-size:13px;color:var(--secondary)}
.page-content{background:var(--page);padding:54px 0 85px}
.article-detail h1{font-size:clamp(35px,4.6vw,51px);font-weight:800;line-height:1.22;color:var(--text)}
.article-detail .lead,.prose-content{color:var(--secondary)}
.prose-content h2{font-size:27px;color:var(--text);font-weight:800}
.prose-content strong{color:var(--text)}
.article-back{color:var(--accent)}
.empty-public{background:var(--surface);border-color:var(--line);border-radius:14px;color:var(--secondary)}

/* Dashboard inherits the same font, spacing, radius and theme tokens. */
.admin-gate{background:var(--soft)}
.admin-gate-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--elevation);max-width:450px;padding:36px 39px}
.admin-gate-card>.theme-toggle{position:absolute;right:20px;top:20px;width:34px;height:34px}
.admin-gate-brand{margin-bottom:27px;color:var(--accent);font-family:var(--serif);font-size:16px}
.admin-gate-brand img{border-radius:12px}
.admin-gate h1{font-size:32px;font-family:var(--serif);font-weight:800;color:var(--text);margin:13px 0}
.admin-gate p{font-size:12px;color:var(--secondary);line-height:1.7}
.admin-gate-card>p{display:none}
.admin-gate-note,.admin-bottom-tip,.admin-side-card,.admin-panel-head p,.admin-page-head p,.admin-hint{display:none!important}
.admin-gate-form{margin-top:23px}
.admin-gate-form label{color:var(--text)}
.admin-gate-form input{background:var(--soft);color:var(--text);border:1px solid var(--line);border-radius:10px}
.admin-main-button{border-radius:10px;background:#173f38}
.admin-shell{background:var(--page);color:var(--text)}
.admin-sidebar{background:#14362f;padding:23px 13px}
.admin-logo{padding:0 9px 28px}
.admin-logo img{border-radius:10px}
.admin-logo b{font-size:15px;font-weight:800;letter-spacing:-.035em}
.admin-sidebar-label{font-size:9px}
.admin-nav{border-radius:9px;padding:11px 13px}
.admin-topbar{height:65px;background:var(--surface);border-color:var(--line);padding:0 29px}
.admin-crumb{color:var(--secondary)}
.admin-user{color:var(--text)}
.admin-avatar{background:var(--soft);color:var(--text)}
.admin-content{padding:30px 29px 45px}
.admin-page-head h1{font-size:30px;font-weight:800;color:var(--text);letter-spacing:-.05em;margin:6px 0}
.admin-page-head h1 span{font-size:20px}
.admin-create{background:#173f38;color:#fff;border-radius:10px;padding:12px 16px}
.admin-stats{margin:24px 0;gap:13px}
.admin-stat{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-height:82px;padding:16px 19px}
.admin-stat>span{background:var(--soft);color:var(--accent);border-radius:9px}
.admin-stat .ui-icon{width:21px;height:21px}
.admin-stat small{color:var(--secondary)}
.admin-stat strong{font-family:var(--serif);font-size:28px;color:var(--text);font-weight:800}
.admin-workspace{gap:15px;grid-template-columns:minmax(300px,.78fr) minmax(430px,1.22fr)}
.admin-list-panel,.admin-editor-panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;overflow:hidden}
.admin-panel-head{border-color:var(--line);padding:18px 20px}
.admin-panel-head h2{font-family:var(--serif);font-size:17px;font-weight:800;letter-spacing:-.04em;color:var(--text);margin:0}
.admin-count,.admin-editor-icon{background:var(--soft);color:var(--secondary);border-radius:8px}
.admin-search{border:1px solid var(--line);border-radius:10px;margin:18px 19px 13px;color:var(--secondary)}
.admin-search input{font-size:12px;color:var(--text)}
.admin-filters{padding:0 19px 13px;border-color:var(--line)}
.admin-filters button{background:var(--soft);color:var(--secondary);border-radius:8px;font-size:11px}
.admin-filters button.active{background:#dcece1;color:#235342}
.admin-post-row{background:var(--surface);border-color:var(--line);padding:14px 18px}
.admin-post-row:hover,.admin-post-row.selected{background:var(--soft)}
.admin-post-thumb{width:55px;height:56px;border-radius:9px;background:var(--soft)}
.admin-post-info b{color:var(--text);font-size:12px}
.admin-post-info small{color:var(--secondary);font-size:10px}
.admin-form{padding:20px 21px}
.admin-field{gap:7px;margin-bottom:16px}
.admin-field label{color:var(--secondary);font-size:10px;letter-spacing:.04em}
.admin-field input:not([type=file]),.admin-field textarea,.admin-field select{background:var(--soft);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:11px 13px;font-size:12px}
.admin-slug{background:var(--soft);border-color:var(--line);border-radius:9px;overflow:hidden}
.admin-slug span{color:var(--secondary)}
.admin-field .admin-body-input{min-height:230px}
.admin-field .admin-upload{border-color:var(--line);background:var(--soft);border-radius:10px;min-height:96px;color:var(--secondary)}
.admin-upload .ui-icon{width:24px;height:24px}
.admin-actions{border-color:var(--line)}
.admin-actions button{border-radius:9px;font-size:12px}
.admin-save-draft{background:var(--soft);color:var(--text)}
.admin-publish{background:#173f38;color:#fff}
.admin-filters button,.admin-nav,.admin-create,.admin-actions button{transition:transform .18s,background .18s}
.admin-create:hover,.admin-actions button:hover{transform:translateY(-1px)}

/* Dark-mode coverage for old component declarations that used fixed colors. */
html[data-theme='dark'] .site-header,
html[data-theme='dark'] .service-card,
html[data-theme='dark'] .contact-card,
html[data-theme='dark'] .admin-shell,
html[data-theme='dark'] .admin-stat,
html[data-theme='dark'] .admin-list-panel,
html[data-theme='dark'] .admin-editor-panel,
html[data-theme='dark'] .admin-topbar,
html[data-theme='dark'] .admin-gate-card,
html[data-theme='dark'] .admin-post-row{background:var(--surface);color:var(--text)}
html[data-theme='dark'] .hero,html[data-theme='dark'] .about-section,html[data-theme='dark'] .page-banner{background:var(--soft)}
html[data-theme='dark'] .hero-description,html[data-theme='dark'] .section-heading>p,html[data-theme='dark'] .service-card p,
html[data-theme='dark'] .about-copy p,html[data-theme='dark'] .article-card p,html[data-theme='dark'] .admin-gate p{color:var(--secondary)}
html[data-theme='dark'] .service-card h3,html[data-theme='dark'] .about-value b,html[data-theme='dark'] .article-card h3,
html[data-theme='dark'] .admin-panel-head h2{color:var(--text)}
html[data-theme='dark'] .admin-field input,html[data-theme='dark'] .admin-field textarea,html[data-theme='dark'] .admin-field select,
html[data-theme='dark'] .admin-search input,html[data-theme='dark'] .admin-gate-form input{color:var(--text)}
html[data-theme='dark'] .admin-post-row:hover,html[data-theme='dark'] .admin-post-row.selected{background:var(--soft)}
html[data-theme='dark'] .admin-filters button.active{background:#264c3c;color:#bce6ca}
html[data-theme='dark'] .admin-status.published{background:#244d3a;color:#b0dfbf}
html[data-theme='dark'] .admin-status.draft{background:#55472e;color:#f2d497}
html[data-theme='dark'] .contact-card{background:#23342d;color:#eff3eb}
html[data-theme='dark'] .contact-card p{color:#b7c7bd}
html[data-theme='dark'] .contact-number{color:#f4f3eb}
html[data-theme='dark'] .contact-section,html[data-theme='dark'] .process-section{background:#102d28}
html[data-theme='dark'] .prose-content{color:#b7cabe}
html[data-theme='dark'] .admin-page-head h1,html[data-theme='dark'] .admin-stat strong{color:var(--text)}
html[data-theme='dark'] .admin-gate .admin-main-button{color:#fff}

@media(max-width:1150px){.desktop-nav{gap:14px}.nav-shell{gap:11px}.hero h1{font-size:54px}.hero-photo-wrap{height:440px}.service-photo{height:170px}}
@media(max-width:900px){
  .container{width:min(100% - 44px,740px)}
  .nav-shell{height:68px}.theme-toggle{margin-left:auto}
  .mobile-panel{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:13px;right:0;top:48px}
  .mobile-panel a{border-color:var(--line)}
  .mobile-menu summary span{background:var(--text)}
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{padding:58px 0 36px}
  .hero h1{font-size:clamp(42px,7vw,59px)}
  .hero-photo-wrap{height:380px;margin-bottom:35px}
  .service-grid{grid-template-columns:repeat(2,1fr)}.service-photo{height:190px}
  .about-grid{grid-template-columns:1fr}.about-visual{height:360px}.about-copy{padding-top:0}
  .contact-grid{grid-template-columns:1fr;gap:28px}
  .admin-workspace{grid-template-columns:1fr}
}
@media(max-width:620px){
  .container{width:calc(100% - 34px)}
  .top-strip{display:none}
  .nav-shell{height:65px}
  .brand-symbol img{width:42px;height:42px;border-radius:11px}
  .brand-copy b{font-size:15px}.brand-copy small{font-size:7px;letter-spacing:.075em}
  .theme-toggle{width:37px;height:37px;border-radius:9px}
  .hero-copy{padding:48px 0 30px}
  .hero h1{font-size:clamp(38px,10vw,49px);letter-spacing:-.06em}
  .hero-description{font-size:13px}
  .hero-photo-wrap{height:285px;margin-bottom:22px}
  .hero-photo{border-radius:15px}
  .hero-photo-caption{left:20px;bottom:18px}
  .hero-photo-caption b{font-size:21px}
  .promise-grid{gap:11px;padding:13px 0}.promise-grid div{font-size:10px}
  .section{padding:57px 0}
  .section h2,.about-section h2,.contact-section h2{font-size:clamp(31px,8.3vw,39px)}
  .service-grid{grid-template-columns:1fr;gap:14px}
  .service-photo{height:188px}
  .service-card p{min-height:0}
  .about-section{padding:58px 0}.about-visual{height:300px}
  .steps-grid{grid-template-columns:1fr 1fr;gap:22px 17px;margin-top:28px}
  .step-top span{font-size:26px}.step h3{font-size:14px}.step p{font-size:11px}
  .process-section{padding:59px 0}
  .article-image{height:210px}
  .article-card h3{font-size:19px}
  .contact-section{padding:54px 0}.contact-card{padding:25px}
  .contact-number{font-size:34px}
  .footer-grid{gap:23px;padding:42px 0 26px}
  .mobile-sticky-call{background:#b68a55;color:#fff}
  .back-to-top{right:17px;bottom:72px;width:43px;height:43px}
  .admin-gate-card{padding:29px 24px}
  .admin-topbar{padding:0 15px;gap:10px}
  .admin-content{padding:24px 14px 40px}
  .admin-page-head h1{font-size:28px}
  .admin-stats{gap:8px}.admin-stat{padding:11px 9px;gap:7px}
  .admin-stat strong{font-size:24px}.admin-stat .ui-icon{width:17px;height:17px}
  .admin-stat>span{width:28px;height:30px}
  .admin-stat small{font-size:7px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
