/*
Theme Name: Zee Property Services
Author: Zee Property Services
Description: A bespoke, block-editor-ready theme for Zee Property Services, connected visually to Zee Garden Rooms.
Version: 1.2.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: zee-property-services
License: GPL-2.0-or-later
*/
@font-face{font-family:Fraunces;src:url('assets/fraunces.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Lato;src:url('assets/lato-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Lato;src:url('assets/lato-light.ttf') format('truetype');font-weight:300;font-display:swap}
@font-face{font-family:Lato;src:url('assets/lato-bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Fraunces;src:url('assets/fraunces-italic.ttf') format('truetype');font-style:italic;font-weight:100 900;font-display:swap}
:root{--ink:#231d1c;--black:#231d1c;--gold:#c99728;--almond:#e0d5c6;--silver:#7a716f;--paper:#fff;--wash:#e0d5c6;--line:rgb(122 113 111 / 25%);--muted:#7a716f;--content:1200px;--space:clamp(24px,5vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:155px}body{margin:0;background:var(--paper);color:var(--ink);font:300 17px/1.75 Lato,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;font-weight:300;line-height:1.13;letter-spacing:-.015em;margin:0 0 24px}h1{font-size:clamp(42px,4.2vw,56px)}h2{font-family:Lato,Arial,sans-serif;font-size:clamp(30px,3vw,40px);line-height:1.25;letter-spacing:-.015em}h3{font-size:clamp(22px,2vw,26px);font-weight:700;line-height:1.3}p{margin:0 0 24px}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--ink)}img{max-width:100%;height:auto;display:block}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.skip-link{position:fixed;top:8px;left:8px;background:white;color:black;padding:12px;z-index:999;transform:translateY(-200%)}.skip-link:focus{transform:none}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{background:var(--black);color:white;position:relative;z-index:50}.header-inner{max-width:1440px;min-height:156px;margin:auto;padding:8px var(--space);display:flex;align-items:center;gap:32px}.brand{margin-right:auto;flex-shrink:0}.brand-logo{width:224px;display:block;line-height:0}.brand-logo img{position:static;width:100%;height:auto}.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:30px;align-items:center}.primary-nav a{text-decoration:none;font-size:15px;font-weight:400;padding:12px 0;display:block}.primary-nav a:hover,.primary-nav .current-menu-item>a,.primary-nav .current-page-ancestor>a{color:var(--gold)}.primary-nav .sub-menu{display:none}.header-cta{display:inline-flex;font-weight:400;align-items:center;gap:25px;border:1px solid var(--gold);color:var(--gold);text-decoration:none;font-size:14px;padding:12px 20px}.header-cta:hover{background:var(--gold);color:var(--black)}.menu-toggle{display:none;background:transparent;color:white;border:1px solid var(--gold);padding:9px 14px}.site-main .entry-content>*{margin-block-start:0;margin-block-end:0}.site-main{min-height:45vh}.entry-content .wp-block-group{box-sizing:border-box}.section{padding:clamp(64px,7vw,108px) var(--space)}.section-inner{max-width:var(--content);margin-inline:auto}.section-compact{padding-top:48px;padding-bottom:48px}.eyebrow{color:var(--ink);font-size:13px;font-weight:400;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px!important}.eyebrow::before{content:"";display:inline-block;width:28px;height:1px;margin-right:12px;vertical-align:middle;background:var(--gold)}.lead{font-size:clamp(20px,2vw,25px);font-weight:300;line-height:1.55;max-width:750px}.muted{color:var(--muted)}.text-link{font-size:15px;margin-top:28px}.text-link a{text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:7px;display:inline-block}.text-link a::after{content:'↗';margin-left:26px}.quiet-link a{font-size:15px}.wp-block-buttons{gap:14px}.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:22px;background:var(--gold);border:1px solid var(--gold);border-radius:0;color:var(--black);padding:15px 26px;font:400 15px/1.4 Lato,Arial,sans-serif;text-decoration:none;transition:background .81s,color .81s}.wp-block-button__link:hover{background:var(--almond);border-color:var(--almond);color:var(--black)}.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:inherit;border:1px solid currentColor}.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--ink);color:white}.wp-block-columns{gap:clamp(30px,5vw,76px)}.wp-block-column{min-width:0}.wp-block-column>:last-child{margin-bottom:0}.wp-block-list{padding-left:22px;margin-top:0}.wp-block-list li{padding-left:5px;margin-bottom:10px}figure{margin:0}figcaption{font-size:13px;line-height:1.4;color:var(--muted);margin-top:12px}
.zee-hero{position:relative;min-height:610px;background:var(--black);color:white;overflow:hidden;display:flex;align-items:center;padding:84px var(--space)}.hero-image{position:absolute;inset:0;margin:0!important;width:100%;height:100%}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 56%}.zee-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(35,29,28,.87),rgba(35,29,28,.58) 35%,rgba(35,29,28,.02) 77%)}.hero-copy{max-width:var(--content);width:100%;margin:auto;position:relative;z-index:1}.hero-copy h1{max-width:660px;color:white;margin-bottom:28px}.hero-copy>.wp-block-group{max-width:555px}.hero-copy p:not(.eyebrow):not(.image-note){font-size:19px;line-height:1.65;color:white;max-width:440px}.hero-copy .eyebrow{color:white}.hero-copy .wp-block-buttons{margin-top:34px}.hero-copy .is-style-outline .wp-block-button__link{color:white;border-color:var(--almond)}.hero-copy .is-style-outline .wp-block-button__link:hover{background:white;color:var(--ink)}.image-note{position:absolute;right:var(--space);bottom:19px;z-index:2;margin:0!important;color:#fff;font-size:12px;text-shadow:0 1px 5px black}.promise-strip{background:var(--black);color:var(--almond);padding:25px var(--space)}.promise-strip .wp-block-columns{max-width:var(--content);margin:0 auto;gap:24px}.promise-strip p{font-size:14px;margin:0}.promise-strip .wp-block-column:not(:last-child){border-right:1px solid rgb(224 213 198 / 25%)}.promise-strip p::before{content:'—';margin-right:12px;color:var(--gold)}.intro-grid{align-items:flex-start}.intro-grid h2{max-width:480px}.intro-grid .lead{margin-bottom:22px}.wash{background:var(--wash)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:48px}.section-heading h2{margin:0}.section-heading .eyebrow{margin-bottom:14px!important}.service-grid{gap:0!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0!important}.service-card{padding:36px 34px 38px}.service-card:first-child{padding-left:0}.service-card:last-child{padding-right:0}.service-card:not(:last-child){border-right:1px solid var(--line)}.service-number{font-size:13px;font-weight:400;color:var(--ink);letter-spacing:.1em;margin-bottom:48px}.service-card h3{font-size:24px;max-width:310px}.service-card p{font-size:16px}.service-card h3 a{text-decoration:none}.service-card .text-link{margin-top:35px}.image-panel img{width:100%;aspect-ratio:5/4;object-fit:cover}.image-panel .wp-block-image{margin-bottom:0}.feature-grid{align-items:center}.feature-grid h2{max-width:490px}.steps{list-style:none;padding:0!important;counter-reset:steps;margin:32px 0 0}.steps li{counter-increment:steps;border-top:1px solid var(--line);padding:18px 0 18px 40px;position:relative}.steps li::before{content:'0' counter(steps);position:absolute;left:0;top:20px;color:var(--ink);font-size:13px}.dark-section{background:var(--black);color:white}.dark-section h2{color:var(--gold)}.dark-section .eyebrow{color:var(--gold)}.dark-section p{color:var(--almond)}.dark-section a:hover{color:var(--gold)}.cta-section .section-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-section h2{max-width:730px;margin-bottom:14px}.cta-section p{margin:0}.cta-section .wp-block-buttons{flex-shrink:0}.brand-note{border-top:1px solid var(--line);padding:35px var(--space)}.brand-note .section-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}.brand-note p{font-size:15px;margin:0}.brand-note a{text-decoration:none}.page-intro{background:rgb(224 213 198 / 50%);padding-top:76px;padding-bottom:76px}.page-intro h1{max-width:940px;font-size:clamp(42px,4.2vw,56px)}.page-intro .lead{margin-bottom:0}.prose{max-width:820px;margin:auto}.prose h2{font-size:32px;margin-top:46px}.prose h2:first-child{margin-top:0}.prose h3{font-size:23px;margin-top:32px}.content-list{columns:2;column-gap:55px;margin-bottom:32px}.content-list li{break-inside:avoid}.service-callout{border-left:2px solid var(--gold);padding:4px 0 4px 25px;margin:35px 0}.service-callout p{margin:0}.contact-details h3{margin:34px 0 12px}.contact-details h3:first-child{margin-top:0}.contact-details a{text-decoration:none}.contact-details a:hover{text-decoration:underline}.zee-form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.zee-form .full{grid-column:1/-1}.zee-form label{display:block;font-size:14px;margin-bottom:7px}.zee-form input,.zee-form textarea,.zee-form select{width:100%;border:1px solid var(--silver);background:white;color:var(--ink);border-radius:0;padding:13px 12px;font-size:16px}.zee-form textarea{resize:vertical;min-height:135px}.zee-form input:focus,.zee-form textarea:focus,.zee-form select:focus{border-color:var(--ink)}.zee-form .form-note{font-size:13px;line-height:1.5;color:var(--muted);margin:0}.zee-form button{justify-self:start}.zee-honey{position:absolute!important;left:-9999px!important}.form-message{padding:16px 20px;border-left:3px solid var(--gold);background:var(--wash);margin-bottom:22px}.project-empty{padding:36px;border:1px solid var(--line);margin:30px 0}.project-empty h3{margin-bottom:15px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.project-item{border-bottom:1px solid var(--line);padding-bottom:25px}.project-item img{aspect-ratio:4/3;object-fit:cover;margin-bottom:24px}.project-item h3 a{text-decoration:none}.site-footer{background:var(--black);color:var(--almond);padding:65px var(--space) 25px}.footer-main{max-width:var(--content);margin:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:60px;padding-bottom:45px}.footer-main .brand-logo{margin-left:0;margin-top:0}.footer-main p{font-size:15px;max-width:260px;margin-top:20px}.footer-heading{font-size:13px!important;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin:0 0 20px!important}.footer-main ul{list-style:none;margin:0;padding:0}.footer-main li{margin-bottom:8px}.footer-main a{text-decoration:none;font-size:15px}.footer-main a:hover{color:var(--gold)}.footer-bottom{max-width:var(--content);margin:auto;border-top:1px solid rgb(224 213 198 / 25%);padding-top:22px;display:flex;gap:20px;justify-content:space-between;align-items:center;font-size:13px}.footer-bottom p{margin:0}.footer-bottom nav{display:flex;gap:22px}.footer-bottom a{text-decoration:none}.editor-styles-wrapper{font-family:Lato,Arial,sans-serif;color:var(--ink)}.editor-styles-wrapper .zee-hero{isolation:isolate}.editor-styles-wrapper .hero-copy{z-index:3}.editor-styles-wrapper .image-note{position:relative;right:auto;bottom:auto}.editor-styles-wrapper .hero-image{position:relative;height:auto}.editor-styles-wrapper .zee-hero{display:block}.editor-styles-wrapper .zee-hero::after{pointer-events:none}.wp-site-blocks>*,.entry-content>p{max-width:var(--content)}
@media(max-width:1100px){.header-inner{gap:22px}.primary-nav ul{gap:22px}.header-cta{gap:15px;padding:10px 14px}.service-card{padding-inline:24px}.zee-hero{min-height:570px}.hero-copy h1{max-width:610px}.service-card h3{font-size:23px}}
@media(max-width:900px){.header-inner{min-height:140px}.brand-logo{width:200px}.menu-toggle{display:block}.header-cta{margin-left:auto}.brand{margin-right:0}.primary-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--black);border-top:1px solid rgb(224 213 198 / 25%);padding:20px var(--space) 30px}.primary-nav.is-open{display:block}.primary-nav ul{display:block}.primary-nav a{font-size:18px;padding:13px 0}.primary-nav .sub-menu{display:block;margin-left:22px}.primary-nav .sub-menu a{font-size:15px;padding:9px 0;color:var(--almond)}.cta-section .section-inner{display:block}.cta-section .wp-block-buttons{margin-top:28px}.footer-main{gap:35px}.service-card{padding-inline:20px}.content-list{columns:1}}
@media(max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}.service-grid{display:block!important;border-bottom:0}.service-card{padding:28px 0!important;border-right:0!important;border-bottom:1px solid var(--line)}.service-number{margin-bottom:20px}.service-card h3{max-width:none}.service-card .text-link{margin-top:24px}.promise-strip .wp-block-columns{display:flex;flex-direction:column;gap:9px}.promise-strip .wp-block-column{border:0!important}.section-heading{display:block}.section-heading .text-link{margin-top:24px}.footer-main{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-main .footer-brand p{max-width:360px}.footer-bottom{align-items:flex-start;flex-direction:column}.brand-note .section-inner{display:block}.brand-note p+p{margin-top:14px}.zee-hero{min-height:610px;align-items:end;padding-top:76px;padding-bottom:64px}.zee-hero::after{background:linear-gradient(90deg,rgba(35,29,28,.82),rgba(35,29,28,.5) 80%),linear-gradient(0deg,rgba(35,29,28,.25),transparent)}.hero-copy h1{font-size:clamp(42px,7vw,56px)}.hero-image img{object-position:60% center}.hero-copy p:not(.eyebrow):not(.image-note){font-size:18px}.feature-grid{gap:35px}.page-intro{padding-top:60px;padding-bottom:60px}.project-grid{grid-template-columns:1fr}}
@media(max-width:480px){.header-inner{gap:12px}.header-cta{font-size:13px;padding:10px 12px}.header-cta span{display:none}.brand-logo{width:184px}.menu-toggle{font-size:13px;padding:9px 10px}.header-inner{min-height:128px;padding-inline:20px}.zee-hero{min-height:600px}.hero-copy h1{font-size:44px}.hero-copy .wp-block-buttons{display:flex;align-items:flex-start;flex-direction:column}.wp-block-button__link{padding:14px 20px}.footer-main{grid-template-columns:1fr;gap:30px}.footer-brand{grid-column:auto}.footer-bottom nav{flex-wrap:wrap;gap:14px}.zee-form{grid-template-columns:1fr}.section{padding-block:60px}.brand-note{padding-block:28px}.image-note{font-size:12px}.lead{font-size:21px}}

/* Use the supplied 2026 Property Services logo with its complete artboard.
   Lato Light secondary headings use
   Raisin Black on light surfaces for contrast, Satin Gold on Raisin Black. */
a:hover{color:inherit;text-decoration-color:var(--gold)}
.wash figcaption,.page-intro .muted,.wash .muted{color:var(--ink)}
.brand-note{background:rgb(122 113 111 / 10%)}
blockquote,.wp-block-quote{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:400;border-left:2px solid var(--gold);padding-left:24px}
strong,b{font-weight:700}
:focus-visible{outline:3px solid var(--ink);box-shadow:0 0 0 6px var(--gold)}
.site-header :focus-visible,.site-footer :focus-visible,.dark-section :focus-visible,.zee-hero :focus-visible{outline-color:white}
.editor-styles-wrapper{font-weight:300}
@media(max-width:600px){.header-cta{display:none}.menu-toggle{margin-left:auto}.brand-logo{width:184px}.header-inner{min-height:128px}.header-inner{padding-inline:20px}}

/* The headline masks preserve its line heights and readable, editable text. */
.hero-line {
  display: block;
  overflow: clip;
  padding-bottom: .13em;
  margin-bottom: -.13em;
}
.hero-line-inner { display: block; }
.editor-styles-wrapper .hero-image,
.editor-styles-wrapper .hero-image img,
.editor-styles-wrapper .hero-copy *,
.editor-styles-wrapper .page-intro .section-inner { animation: none !important; }

/* Cinematic hero, measured entrances and a distinct pause between neighbouring elements. */
@media (prefers-reduced-motion: no-preference) {
  /* All hero effects apply from the first styled paint, avoiding late visibility resets. */
  .hero-image {
    animation: zee-image-unveil 1700ms cubic-bezier(.76, 0, .24, 1) both;
  }
  .hero-image img {
    animation: zee-camera-settle 6800ms cubic-bezier(.25, .1, .25, 1) both;
  }
  .hero-line-inner {
    transform-origin: left center;
    animation: zee-headline-unveil 1350ms cubic-bezier(.22, .65, .3, 1) 450ms both;
  }
  .hero-line:nth-child(2) .hero-line-inner { animation-delay: 1000ms; }
  .hero-line:nth-child(n+3) .hero-line-inner { animation-delay: 1550ms; }
  .hero-copy > .eyebrow {
    animation: zee-hero-fade 800ms ease 250ms both;
  }
  .hero-copy > .eyebrow::before {
    transform-origin: left center;
    animation: zee-gold-rule 1800ms cubic-bezier(.33, 0, .25, 1) 100ms both;
  }
  .hero-copy > p:not(.eyebrow) {
    animation: zee-hero-fade 900ms ease 1900ms both;
  }
  .hero-copy > .wp-block-buttons {
    animation: zee-hero-fade 800ms ease 2550ms both;
  }
  .zee-hero > .image-note { animation: zee-hero-fade 800ms ease 1700ms both; }
  /* Text enters once, in place. Keyboard users can reveal the entire sequence immediately. */
  .hero-copy:focus-within > p,
  .hero-copy:focus-within > .wp-block-buttons,
  .hero-copy:focus-within .hero-line-inner { animation: none; }
  .page-intro .section-inner {
    animation: zee-copy-settle 1800ms cubic-bezier(.33, 0, .25, 1) both;
  }
  @keyframes zee-image-unveil {
    from { clip-path: inset(0 0 0 100%); }
    to { clip-path: inset(0); }
  }
  @keyframes zee-camera-settle {
    from { transform: scale(1.08) translateX(-1.2%); }
    to { transform: scale(1) translateX(0); }
  }
  @keyframes zee-headline-unveil {
    from { transform: translateY(115%) rotate(1.5deg); }
    to { transform: translateY(0) rotate(0); }
  }
  @keyframes zee-gold-rule {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
  }
  @keyframes zee-copy-settle {
    from { transform: translateY(24px); }
    to { transform: translateY(0); }
  }
  @keyframes zee-hero-fade {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  .wp-block-button__link,
  .header-cta {
    transition: background-color 350ms ease, border-color 350ms ease,
      color 350ms ease, transform 500ms ease, box-shadow 500ms ease;
  }
  .text-link a::after {
    display: inline-block;
    transition: transform 500ms cubic-bezier(.33, 0, .25, 1);
  }
  .primary-nav > ul > li > a { position: relative; }
  .primary-nav > ul > li > a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6px;
    height: 1px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 650ms cubic-bezier(.33, 0, .25, 1);
  }
  .primary-nav > ul > li > a:is(:hover, :focus-visible)::after,
  .primary-nav > ul > .current-menu-item > a::after,
  .primary-nav > ul > .current-page-ancestor > a::after { transform: scaleX(1); }
  .service-card { position: relative; }
  .service-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 900ms cubic-bezier(.33, 0, .25, 1);
  }
  .service-card:focus-within::before { transform: scaleX(1); }
  .text-link a:focus-visible::after { transform: translate(3px, -3px); }
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {
  .wp-block-button__link:hover,
  .header-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgb(35 29 28 / 12%);
  }
  .text-link a:hover::after,
  .service-card:hover .text-link a::after { transform: translate(3px, -3px); }
  .service-card:hover::before { transform: scaleX(1); }
  .image-panel .wp-block-image { overflow: hidden; }
  .image-panel img { transition: transform 1600ms cubic-bezier(.33, 0, .25, 1); }
  .image-panel:hover img { transform: scale(1.025); }
}

@media (prefers-reduced-motion: no-preference) and (max-width: 900px) {
  .primary-nav.is-open { animation: zee-menu-enter 400ms ease-out; }
  @keyframes zee-menu-enter {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
