
:root{--ink:#0b0d10;--paper:#f3f1eb;--white:#fff;--blue:#275df5;--muted:#62666d;--line:#d6d3cb;--max:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:#f7f7f5;font-family:Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.shell{width:min(var(--max),calc(100% - 48px));margin:auto}
.site-header{background:#0b0d10;border-bottom:1px solid #292c31}.nav-wrap{height:76px;display:flex;align-items:center;gap:34px}.brand{margin-right:auto}.brand img{width:150px;height:48px;object-fit:contain;object-position:left}.nav-links{display:flex;gap:27px}.nav-links a{font-size:14px;color:#bbbfc5}.nav-links a:hover,.nav-links a.active{color:#fff}.nav-contact{font-size:13px;background:#fff;color:#111;padding:10px 15px}.menu-btn{display:none;background:none;color:#fff;border:1px solid #444;padding:9px 11px}
.home-hero{padding:112px 0 100px}.hero-layout{display:grid;grid-template-columns:1.45fr .55fr;gap:100px;align-items:end}.intro{font-size:14px;font-weight:bold;color:#7d9cff;margin:0 0 20px}.hero-copy h1,.page-intro h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.045em}.hero-copy h1{font-size:clamp(58px,7vw,94px);line-height:.96;margin:0;max-width:900px}.hero-text{font-size:19px;color:#b7bbc1;max-width:690px;margin:30px 0 0}.hero-note{border-top:3px solid var(--blue);padding-top:18px}.hero-note strong{font-size:17px}.hero-note p{font-size:14px;color:#aeb3ba}.actions{display:flex;gap:24px;align-items:center;margin-top:34px}.primary{display:inline-block;background:var(--blue);color:#fff;padding:13px 19px;font-weight:bold;font-size:14px;border:0;cursor:pointer}.text-link{font-size:14px;text-decoration:underline;text-underline-offset:4px}.dark-link{color:#111}
.plain-section{padding:90px 0;background:#0b0d10}.plain-section.light{background:var(--paper);color:#161719}.two-col{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.two-col h2,.section-title h2,.work-summary h2,.closing h2,.service-detail-list h2,.belief-list h3,.process-list h2,.project-story h2,.contact-layout h2{font-family:Georgia,"Times New Roman",serif;font-weight:400}.two-col h2{font-size:46px;line-height:1.08;margin:0}.prose{font-size:18px;color:#50545a}.prose p:first-child{margin-top:0}.section-title{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #333;padding-bottom:22px}.section-title h2{font-size:48px;margin:0}.section-title p{color:#9ea3aa;max-width:440px}
.service-list>a{display:grid;grid-template-columns:.7fr 1.2fr 120px;gap:35px;align-items:center;padding:30px 0;border-bottom:1px solid #303338}.service-list h3{font-family:Georgia,"Times New Roman",serif;font-size:31px;font-weight:400;margin:0}.service-list p{color:#aeb2b8;margin:0}.service-list span{font-size:13px;text-align:right}.service-list>a:hover h3{color:#8aa5ff}
.work-summary{display:grid;grid-template-columns:1fr 1fr;gap:90px}.work-summary h2{font-size:48px;margin:0 0 15px}.work-summary>div>p{color:#555b62}.work-facts{border-left:1px solid var(--line);padding-left:38px}.work-facts p{padding-bottom:13px;border-bottom:1px solid var(--line)}
.closing{background:var(--blue);padding:65px 0}.closing-row{display:flex;justify-content:space-between;gap:50px;align-items:center}.closing h2{font-size:44px;line-height:1.05;margin:0}.closing p{margin:12px 0 0}.light-button{background:#fff;color:#111;white-space:nowrap}
.page-intro{padding:100px 0 80px}.narrow{max-width:930px;margin-left:max(24px,calc((100vw - min(var(--max),calc(100vw - 48px)))/2))}.page-intro h1{font-size:clamp(55px,7vw,88px);line-height:.98;margin:0}.page-intro .narrow>p:last-child{font-size:19px;color:#b7bbc1;max-width:720px;margin-top:25px}
.service-detail-list>div{display:grid;grid-template-columns:.65fr 1fr;column-gap:80px;padding:36px 0;border-bottom:1px solid var(--line)}.service-detail-list h2{font-size:34px;margin:0}.service-detail-list p{margin:0 0 10px;font-size:16px}.muted{color:#70747a!important;font-size:14px!important}
.belief-list{border-top:1px solid #35383d}.belief-list>div{display:grid;grid-template-columns:.7fr 1fr;gap:80px;padding:28px 0;border-bottom:1px solid #35383d}.belief-list h3{font-size:28px;margin:0}.belief-list p{color:#aeb3ba;margin:0}
.process-list>div{display:grid;grid-template-columns:70px 1fr;padding:34px 0;border-bottom:1px solid var(--line)}.process-list>div>span{font-size:16px;color:#777}.process-list section{display:grid;grid-template-columns:.8fr 1fr;gap:70px}.process-list h2{font-size:31px;margin:0}.process-list p{margin:0;color:#555a60}
.project-story{display:grid;grid-template-columns:280px 1fr;gap:90px}.project-story aside{border-right:1px solid var(--line);padding-right:40px}.project-story aside p{margin:0 0 28px;color:#555a60}.project-story article{max-width:730px}.project-story h2{font-size:38px;margin:0 0 12px}.project-story article>p{font-size:17px;color:#50555b;margin:0 0 48px}.project-path{display:flex;gap:0;margin-top:55px;border:1px solid #bcbab3}.project-path span{flex:1;padding:14px 10px;border-right:1px solid #bcbab3;text-align:center;font-size:12px}.project-path span:last-child{border:0}
.contact-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:100px}.contact-layout aside h2{font-size:36px;margin-top:0}.contact-layout aside a{text-decoration:underline;text-underline-offset:4px}.simple-form label{display:block;font-weight:bold;font-size:13px;margin-bottom:27px}.simple-form input,.simple-form textarea,.simple-form select{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #aaa79f;padding:10px 0;font:16px Arial;color:#111;outline:none}.simple-form textarea{min-height:110px;resize:vertical}.form-note{font-size:12px;color:#777}
.site-footer{padding:50px 0 24px;background:#080a0c;border-top:1px solid #292c31}.footer-row{display:flex;justify-content:space-between;gap:50px}.footer-row img{width:145px}.footer-row p{color:#858a91;font-size:13px}.footer-row>div:last-child{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#a7abb1;text-align:right}.copyright{border-top:1px solid #292c31;margin-top:35px;padding-top:18px;color:#666b72;font-size:12px}
@media(max-width:850px){.nav-links,.nav-contact{display:none}.menu-btn{display:block}.nav-links.open{display:flex;position:absolute;top:76px;left:0;right:0;background:#0b0d10;padding:18px 24px;flex-direction:column;border-bottom:1px solid #333;z-index:20}.hero-layout,.two-col,.work-summary,.contact-layout,.project-story{grid-template-columns:1fr;gap:45px}.hero-note{max-width:600px}.service-list>a{grid-template-columns:1fr}.service-list span{text-align:left}.section-title{display:block}.process-list section,.service-detail-list>div,.belief-list>div{grid-template-columns:1fr;gap:12px}.closing-row{align-items:flex-start;flex-direction:column}.project-story aside{border-right:0;border-bottom:1px solid var(--line);padding:0 0 20px}.project-path{flex-wrap:wrap}.project-path span{min-width:33%}}
@media(max-width:560px){.shell{width:calc(100% - 30px)}.home-hero{padding:72px 0 65px}.hero-copy h1{font-size:50px}.hero-text{font-size:17px}.actions{align-items:flex-start;flex-direction:column}.plain-section{padding:65px 0}.two-col h2,.section-title h2,.work-summary h2{font-size:37px}.page-intro{padding:70px 0 55px}.page-intro h1{font-size:48px}.service-detail-list>div{padding:28px 0}.process-list>div{grid-template-columns:42px 1fr}.closing h2{font-size:36px}.footer-row{flex-direction:column}.footer-row>div:last-child{text-align:left}.project-path{display:block}.project-path span{display:block;border-right:0;border-bottom:1px solid #bcbab3}.project-path span:last-child{border:0}}


/* V12 — convenience + human contact details */
.quick-contact{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;background:#fff;color:#111;border:1px solid #d7d7d2;box-shadow:0 8px 28px rgba(0,0,0,.16)}
.quick-contact a{display:flex;flex-direction:column;justify-content:center;min-height:54px;padding:8px 13px;border-right:1px solid #deded9}
.quick-contact a:last-child{border-right:0}.quick-contact span{font-size:9px;color:#777;line-height:1.2}.quick-contact strong{font-size:12px;line-height:1.4}
.quick-contact a:hover{background:#f1f1ed}.quick-contact .quick-project{background:#275df5;color:#fff;min-width:112px}.quick-contact .quick-project span{color:#dce5ff}.quick-contact .quick-project:hover{background:#194be0}

.contact-shortcuts{margin-top:34px;border-top:1px solid #bbb8b0}
.contact-shortcuts a{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #bbb8b0;font-size:13px!important;text-decoration:none!important}
.contact-shortcuts span{color:#6b6e73}.contact-shortcuts strong{color:#111}.contact-shortcuts a:hover strong{color:#275df5}
.contact-reassurance{font-size:13px;color:#6c7075;margin-top:28px;max-width:330px}

.lively-form{position:relative}
.form-welcome{display:flex;gap:13px;align-items:flex-start;margin-bottom:22px;padding-bottom:21px;border-bottom:1px solid #c9c6be}
.status-dot{width:8px;height:8px;border-radius:50%;background:#275df5;display:inline-block;flex:0 0 auto;margin-top:7px}
.form-welcome strong{font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:400}.form-welcome p{font-size:13px;color:#6e7175;margin:3px 0 0}
.form-progress{height:2px;background:#d9d6ce;margin-bottom:31px;overflow:hidden}.progress-fill{display:block;width:0;height:100%;background:#275df5;transition:width .3s ease}
.lively-form label{transition:opacity .2s}.lively-form label:focus-within{opacity:1}.lively-form input:focus,.lively-form textarea:focus,.lively-form select:focus{border-bottom-color:#275df5}
.lively-form input,.lively-form textarea,.lively-form select{transition:border-color .2s;background-color:transparent}
.field-help{display:flex;justify-content:space-between;gap:15px;margin-top:7px;font-weight:normal;font-size:11px;color:#85888c}.char-count{white-space:nowrap}
.form-submit-row{display:flex;align-items:center;gap:18px}.send-note{display:flex;gap:8px;align-items:flex-start;color:#777;font-size:11px}.send-note .status-dot{width:6px;height:6px;background:#8c9095;margin-top:5px}
.form-submit{transition:transform .18s,background .18s}.form-submit:hover{transform:translateY(-1px)}.form-submit:disabled{opacity:.7;cursor:default;transform:none}
.form-success{display:none;margin-top:18px;border-left:3px solid #275df5;padding:10px 14px;background:#e8ecf8}.form-success.show{display:flex;gap:8px;align-items:baseline}.form-success strong{font-family:Georgia,"Times New Roman",serif;font-size:18px;font-weight:400}.form-success span{font-size:12px;color:#565a60}

@media(max-width:720px){
 .quick-contact{left:10px;right:10px;bottom:10px}.quick-contact a{flex:1;min-width:0;padding:8px 10px}.quick-contact a:first-child strong{font-size:11px}.quick-contact .quick-project{min-width:0}
 body{padding-bottom:76px}.form-submit-row{align-items:flex-start;flex-direction:column}
}
@media(max-width:430px){
 .quick-contact a:first-child strong{font-size:0}.quick-contact a:first-child strong:after{content:"Call now";font-size:12px}
 .quick-contact a:nth-child(2){display:none}
}


/* V13 — clickable service navigation */
.service-jump{background:#15181d;border-top:1px solid #30343a;border-bottom:1px solid #30343a;padding:20px 0}
.service-jump .shell{display:flex;align-items:center;gap:30px}
.service-jump p{font-size:12px;color:#8e949d;margin:0;white-space:nowrap}
.service-jump nav{display:flex;gap:8px;flex-wrap:wrap}
.service-jump a{font-size:12px;padding:8px 11px;border:1px solid #3c4149;background:#0e1014;color:#d9dce1}
.service-jump a:hover{background:#275df5;border-color:#275df5;color:#fff}
.service-detail{scroll-margin-top:95px;transition:background-color .35s}
.service-detail:target{background:#e9ecf6;margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}
.service-detail h2:after{content:"  →";font-family:Arial,Helvetica,sans-serif;font-size:15px;color:#275df5;opacity:0;transition:opacity .2s}
.service-detail:hover h2:after{opacity:1}
@media(max-width:720px){
 .service-jump .shell{display:block}.service-jump p{margin-bottom:10px}
 .service-jump nav{display:grid;grid-template-columns:1fr 1fr}.service-jump a{padding:10px}
}
@media(max-width:430px){.service-jump nav{grid-template-columns:1fr}}


/* V14 — large H&T logo on homepage */
.homepage-logo{margin:0 0 38px}
.homepage-logo img{
  width:min(520px,72vw);
  max-height:190px;
  object-fit:contain;
  object-position:left center;
}
@media(max-width:700px){
  .homepage-logo{margin-bottom:28px}
  .homepage-logo img{width:min(390px,88vw);max-height:145px}
}


/* V15 — logo right, services first, restrained motion */
.home-hero{overflow:hidden}
.hero-layout{grid-template-columns:1.2fr .8fr;align-items:center}
.hero-brand{min-width:0;padding-left:28px}
.hero-logo-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:330px}
.hero-logo-wrap:before,.hero-logo-wrap:after{content:"";position:absolute;border:1px solid #292e36;border-radius:50%;inset:8% 5%;animation:htOrbit 18s linear infinite}
.hero-logo-wrap:after{inset:21% 18%;border-color:#1d3f9f;animation-duration:13s;animation-direction:reverse}
.hero-logo-wrap img{position:relative;z-index:2;width:min(470px,100%);max-height:235px;object-fit:contain;animation:logoFloat 5s ease-in-out infinite}
.hero-brand p{max-width:360px;margin:2px auto 0;text-align:center;color:#8f959d;font-size:13px}

.hero-copy .intro{animation:fadeUp .55s ease both}
.hero-copy h1{animation:fadeUp .7s .08s ease both}
.hero-copy .hero-text{animation:fadeUp .7s .16s ease both}
.hero-copy .actions{animation:fadeUp .7s .24s ease both}

.service-list>a{position:relative;transition:padding-left .22s ease,background-color .22s ease}
.service-list>a:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#275df5;transform:scaleY(0);transform-origin:center;transition:transform .22s ease}
.service-list>a:hover{padding-left:18px;background:#101318}
.service-list>a:hover:before{transform:scaleY(1)}
.service-list>a span{transition:transform .2s ease;display:inline-block}.service-list>a:hover span{transform:translateX(4px)}

@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes logoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes htOrbit{to{transform:rotate(360deg)}}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.reveal.is-visible{opacity:1;transform:none}

@media(max-width:850px){
 .hero-layout{grid-template-columns:1fr;gap:35px}
 .hero-brand{padding-left:0}
 .hero-logo-wrap{min-height:230px;max-width:520px;margin:auto}
 .hero-logo-wrap img{width:min(390px,80vw);max-height:180px}
}
@media(max-width:560px){
 .hero-brand{order:2}
 .hero-logo-wrap{min-height:190px}
 .hero-logo-wrap:before{inset:8% 11%}.hero-logo-wrap:after{inset:22% 24%}
}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important}
 .reveal{opacity:1;transform:none}
}


/* V16 — MOBILE-ONLY repair based on phone screenshots.
   Desktop layout remains unchanged. */
@media(max-width:700px){
  /* Header: logo was rendering as a large broken-image box. */
  .site-header{position:relative}
  .nav-wrap{height:70px;gap:12px}
  .brand{display:flex;align-items:center;min-width:0}
  .brand img{width:118px!important;height:38px!important;max-height:38px!important;object-fit:contain!important}
  .menu-btn{margin-left:auto;min-width:64px;height:44px}

  /* Hero: logo belongs beside text on desktop, but on phone it needs its own
     clean compact area so it doesn't create the giant empty/broken box seen. */
  .home-hero{padding:58px 0 48px}
  .hero-layout{display:block!important}
  .hero-copy h1{font-size:clamp(44px,13.5vw,61px)!important;line-height:.98}
  .hero-text{font-size:17px!important;line-height:1.55;margin-top:25px}
  .hero-copy .actions{gap:22px;margin-top:31px}
  .hero-brand{margin-top:42px!important;padding:24px 0 5px!important;border-top:1px solid #292d33}
  .hero-logo-wrap{min-height:0!important;height:auto!important;max-width:none!important;margin:0!important;justify-content:flex-start!important;overflow:hidden}
  .hero-logo-wrap:before,.hero-logo-wrap:after{display:none!important}
  .hero-logo-wrap img{width:210px!important;height:auto!important;max-height:95px!important;object-fit:contain!important;object-position:left center!important;animation:none!important}
  .hero-brand p{margin:10px 0 0!important;text-align:left!important;max-width:300px!important;font-size:12px!important}

  /* Services truly become the first major content after hero. */
  .service-list>a{grid-template-columns:1fr!important;gap:7px!important;padding:24px 0!important}
  .service-list>a:hover{padding-left:0!important}
  .service-list h3{font-size:27px!important}
  .service-list p{font-size:14px!important;line-height:1.5}
  .service-list span{text-align:left!important;margin-top:4px}

  /* Bottom contact bar: reduce height/visual dominance and prevent overlap. */
  body{padding-bottom:66px!important}
  .quick-contact{left:8px!important;right:8px!important;bottom:8px!important;height:58px!important}
  .quick-contact a{min-height:58px!important;padding:6px 9px!important}
  .quick-contact span{font-size:8px!important}
  .quick-contact strong{font-size:11px!important}
  .quick-contact .quick-project strong{font-size:11px!important}
  .quick-contact .quick-project{min-width:0!important}

  /* Footer logo: same broken oversized-box symptom. Constrain it hard. */
  .footer-row img{width:122px!important;height:46px!important;max-height:46px!important;object-fit:contain!important;object-position:left!important}
  .footer-row{gap:27px!important}
  .site-footer{padding:40px 0 20px!important}

  /* Prevent any animation transform from creating horizontal overflow. */
  html,body{max-width:100%;overflow-x:hidden}
  .reveal{transform:translateY(12px)}
}
@media(max-width:430px){
  .quick-contact a:nth-child(2){display:none!important}
  .quick-contact a:first-child strong{font-size:0!important}
  .quick-contact a:first-child strong:after{content:"Call now";font-size:11px}
}


/* V17 — definitive logo delivery fix.
   Logo is embedded in HTML, so Hostinger cannot fail to resolve the asset path. */
@media(max-width:700px){
  .brand img{display:block!important;width:116px!important;height:auto!important;max-height:42px!important;border:0!important}
  .hero-brand{border-top:1px solid #292d33!important;margin-top:34px!important;padding:24px 0 0!important}
  .hero-logo-wrap{display:block!important;width:100%!important;min-height:0!important;height:auto!important;border:0!important;background:none!important;overflow:visible!important}
  .hero-logo-wrap:before,.hero-logo-wrap:after{content:none!important;display:none!important}
  .hero-logo-wrap img{display:block!important;width:185px!important;height:auto!important;max-height:none!important;margin:0!important;border:0!important;object-fit:contain!important;animation:none!important}
  .footer-row img{display:block!important;width:118px!important;height:auto!important;max-height:none!important;border:0!important}
}
