/* Earth & Sun: the homepage design language across the six shared inner pages. */
@media (min-width:1001px) {
  .interior-polished {
    --interior-ink:#173d36; --interior-copy:#50645c; --interior-paper:#fcfcf7;
    --interior-green:#17624c; --interior-sage:#edf3e4; --interior-blue:#e5eff8;
    --interior-gold:#f4e5bc; --interior-peach:#f2dfd0; --interior-line:#d9e2d5;
    --solar-navy:var(--interior-ink); --solar-blue:var(--interior-green);
    --page-muted:var(--interior-copy); --page-border:var(--interior-line); --page-tint:var(--interior-sage);
    background:var(--interior-paper); color:var(--interior-ink); font-family:Outfit,'DM Sans',sans-serif;
  }
  .interior-polished .container { width:min(1280px,calc(100% - 96px)); max-width:1280px; }
  .interior-polished h1,.interior-polished h2,.interior-polished h3,.interior-polished h4 { font-family:Outfit,Manrope,sans-serif; font-weight:500; color:var(--interior-ink); }
  .interior-polished h1 { font-size:clamp(42px,4vw,60px); letter-spacing:-.045em; line-height:1.07; }
  .interior-polished h2 { font-size:clamp(34px,3.1vw,46px); letter-spacing:-.04em; line-height:1.12; }
  .interior-polished h3 { letter-spacing:-.025em; }
  .interior-polished p { color:var(--interior-copy); line-height:1.8; }
  .interior-polished .section-label { color:#4e6d4e; font-size:11px; font-weight:600; letter-spacing:.14em; }
  .interior-polished .section { padding-block:80px; }
  .interior-polished .text-link { color:var(--interior-green); }
  .interior-polished a:hover { color:#0d513f; }
  .interior-polished .button { min-height:48px; border-radius:99px; font-size:13px; padding:14px 24px; }
  .interior-polished .button-blue,.interior-polished .button-green { background:var(--interior-green); border-color:transparent; color:#fffef4; box-shadow:none; }
  .interior-polished .button-blue:hover,.interior-polished .button-green:hover { background:#104938; color:#fffef4; }
  .interior-polished .button-outline { color:var(--interior-green); border-color:#759987; background:transparent; }
  .interior-polished .button-outline:hover { background:#e7eddd; }
  .interior-polished :focus-visible { outline:3px solid #9b6717; outline-offset:4px; }
  .interior-polished input,.interior-polished select,.interior-polished textarea { color:var(--interior-ink); border-color:#cad8cc; background:#fffef8; border-radius:12px; }
  .interior-polished input:focus,.interior-polished select:focus,.interior-polished textarea:focus { outline:2px solid #236b57; outline-offset:2px; }
  .interior-polished .breadcrumbs { color:#607264; font-size:12px; margin-bottom:28px; }
  .interior-polished .breadcrumbs a { color:#315e4e; }
  .interior-polished .page-intro { position:relative; isolation:isolate; overflow:hidden; padding:38px 44px 42px; margin-bottom:38px; border-radius:32px; background:#173d36; border:1px solid #2b5447; }
  .interior-polished .page-intro::after { content:''; position:absolute; pointer-events:none; z-index:-1; width:420px; height:420px; right:-180px; bottom:-200px; border:1px solid #e7d59424; border-radius:50%; box-shadow:0 0 0 55px #e7d5940b,0 0 0 110px #e7d59409; }
  .interior-polished .page-intro h1 { color:#fffdef; }
  .interior-polished .page-intro .page-intro-grid > div > p { color:#e1e9da; font-size:16px; line-height:1.8; }
  .interior-polished .page-intro .section-label { color:#d9e6a5; }
  .interior-polished .page-intro .breadcrumbs { color:#d4dfd1; }
  .interior-polished .page-intro .breadcrumbs a { color:#e0ebac; }
  .interior-polished .page-intro .breadcrumbs a:hover { color:#fffdef; }
  .interior-polished .closing-cta { position:relative; isolation:isolate; overflow:hidden; padding:44px 48px; border-radius:30px; border:1px solid #e8cb9e; background:#f3ddbe; margin-block:42px 70px; }
  .interior-polished .closing-cta::before { content:''; position:absolute; z-index:-1; right:-50px; top:-120px; width:350px; height:350px; border:1px solid #9c753928; border-radius:50%; box-shadow:0 0 0 40px #9c75390a; }
  .interior-polished .closing-cta h2 { font-family:Outfit,sans-serif; font-size:38px; font-weight:500; color:#63432e; }
  .interior-polished .closing-cta p { color:#72543d; }
  .interior-polished .closing-cta .button { background:#714a33; color:#fff4dc; }
  .interior-polished .closing-cta .button:hover { background:#563725; }
  .interior-polished .pagination button,.interior-polished .pagination a { min-height:44px; min-width:44px; border-radius:11px; border-color:#d5dfd1; color:#355a45; background:#fffff8; }
  .interior-polished .pagination [aria-current='page'] { color:#fffdec; background:#24624e; border-color:#24624e; }
  .interior-polished .pagination button:hover:not(:disabled) { background:#e5eddb; color:#244c39; }
  .interior-polished .pagination [aria-current='page']:hover { background:#184c3b; color:#fffdec; }

  /* Shared footer, quotation drawer and newsletter. */
  .interior-polished .newsletter { border:0; border-radius:28px; padding:34px 40px; margin-bottom:34px; background:#e8efdb; gap:40px; }
  .interior-polished .newsletter h2 { font-size:32px; color:#274f3b; }
  .interior-polished .newsletter p { color:#52684a; }
  .interior-polished .site-footer { width:calc(100% - 40px); max-width:1580px; margin:0 auto 20px; border-radius:34px; background:#123b30; padding-top:58px; color:#e9efdf; position:relative; isolation:isolate; overflow:hidden; }
  .interior-polished .site-footer::before { content:''; position:absolute; z-index:-1; width:400px; height:400px; right:-110px; top:-230px; border:1px solid #c6d68621; border-radius:50%; box-shadow:0 0 0 60px #c6d68608; }
  .interior-polished .site-footer .container { width:calc(100% - 88px); }
  .interior-polished .footer-grid { gap:40px; grid-template-columns:1.1fr 1fr 1fr 1.25fr; padding-bottom:26px; }
  .interior-polished .site-footer h3 { font-size:15px; color:#dae7a4; margin-bottom:24px; }
  .interior-polished .site-footer p,.interior-polished .site-footer a { color:#d1dfce; }
  .interior-polished .site-footer a:hover { color:#f8df9b; }
  .interior-polished .footer-brand > .brand { display:flex; align-items:center; justify-content:center; width:144px; height:98px; border-radius:20px; padding:7px 14px; background:#fffcee; }
  .interior-polished .footer-brand > .brand img { width:118px; height:80px; object-fit:contain; }
  .interior-polished .site-footer .footer-brand p { color:#c4d7c6; font-size:13px; margin-top:20px; max-width:250px; }
  .interior-polished .site-footer .footer-grid > div:not(.footer-brand) > a { font-size:12px; margin-top:12px; }
  .interior-polished .site-footer .footer-grid > div:last-child p { color:#c4d7c6; font-size:12px; }
  .interior-polished .site-footer .footer-grid > div:last-child strong { color:#f4f2ce; }
  .interior-polished .footer-bottom { border-color:#91ac8640; padding-block:23px; margin-top:25px; font-size:11px; }
  .interior-polished .site-footer .footer-bottom a { font-size:11px; }
  .interior-polished .basket-dialog { background:#fcfcf3; color:#214b3e; padding:30px; }
  .interior-polished .basket-dialog .drawer-heading { border-radius:20px; background:#e7efda; padding:22px; margin:5px 0 18px; }
  .interior-polished .basket-dialog .drawer-heading h2 { font-size:30px; }
  .interior-polished .basket-line { border-color:#d9e2d3; }
  .interior-polished .basket-line img { border-radius:12px; background:#e9eff5; padding:5px; }
  .interior-polished .basket-totals strong { color:#215f49; }
  .interior-polished .quantity-control button { border-color:#c7d6c7; border-radius:7px; }
  .interior-polished .basket-next { background:#edf2e5; border-radius:16px; padding:18px; }
  .interior-polished .basket-empty { background:#f1e8cd; border-radius:22px; margin-block:22px; }

  /* Contact: a personal introduction, clear office cards and a calm enquiry form. */
  .contact-page .contact-hero .page-intro-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:50px; align-items:center; }
  .contact-page .contact-hero h1 { max-width:650px; font-size:58px; margin-bottom:22px; }
  .contact-page .contact-hero .page-intro-grid > div > p { max-width:630px; }
  .contact-page .contact-hero .hero-actions { display:flex; gap:22px; align-items:center; margin-top:26px; }
  .contact-page .contact-hero .hero-actions .button { background:#e2eba7; color:#254b36; }
  .contact-page .contact-hero .hero-actions .text-link { color:#edf1d7; font-size:13px; }
  .contact-page .contact-hero-visual { margin:0; border-radius:100px 100px 24px 24px; overflow:hidden; background:#e9ecdb; padding:10px; transform:rotate(2deg); }
  .contact-page .contact-hero-visual img { width:100%; height:242px; object-fit:cover; border-radius:94px 94px 18px 18px; }
  .contact-page .contact-hero-visual figcaption { color:#355543; font-size:12px; padding:14px 12px 5px; text-align:center; }
  .contact-page .contact-offices { padding:24px 0 60px; }
  .contact-page .contact-offices-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:28px; gap:30px; }
  .contact-page .contact-offices-heading h2 { font-size:36px; max-width:620px; }
  .contact-page .office-cards { display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; }
  .contact-page .office-card { padding:28px 30px; background:#e4eef6; border:1px solid #d2e0e9; border-radius:26px; margin:0; display:flex; flex-direction:column; }
  .contact-page .office-card:nth-child(2) { background:#f2e7c8; border-color:#e5d8b0; border-radius:26px 60px 26px 26px; }
  .contact-page .office-card:nth-child(3) { background:#205340; border-color:#205340; }
  .contact-page .office-card > .icon { width:25px; height:25px; margin-bottom:25px; color:#42694b; }
  .contact-page .office-card h3 { font-size:24px; margin:0 0 13px; }
  .contact-page .office-card p { font-size:14px; margin:0 0 16px; line-height:1.8; max-width:320px; }
  .contact-page .office-card > .text-link { margin-top:auto; font-size:12px; padding-top:8px; }
  .contact-page .office-card:nth-child(3) h3 { color:#ecf0d0; }
  .contact-page .office-card:nth-child(3) > .icon { color:#e4d289; }
  .contact-page .office-card .contact-line { color:#f3f5e4; font-size:17px; margin:6px 0; overflow-wrap:anywhere; }
  .contact-page .office-card .contact-line:last-child { font-size:14px; }
  .contact-page .office-card .contact-line:hover { color:#f7dda0; }
  .contact-page .contact-page-form { padding:0; margin-bottom:70px; }
  .contact-page .contact-page-form .contact-grid { padding:44px; border:1px solid #d0dfea; border-radius:32px; background:#e2edf7; grid-template-columns:.85fr 1.15fr; gap:50px; color:#173d36; align-items:start; }
  .contact-page .contact-page-form .contact-intro { padding:12px 0; }
  .contact-page .contact-page-form .contact-intro h2 { font-size:43px; line-height:1.12; color:#204b50; margin-bottom:24px; }
  .contact-page .contact-page-form .contact-intro > p { font-size:15px; color:#466671; }
  .contact-page .enquiry-steps { list-style:none; margin-top:38px; }
  .contact-page .enquiry-steps li { display:grid; grid-template-columns:38px 1fr; align-items:center; gap:15px; border-top:1px solid #b6cddd; padding:20px 0; font-size:14px; color:#355865; }
  .contact-page .enquiry-steps li span { font-size:23px; color:#557750; }
  .contact-page .contact-form-panel { background:#fffef7; border:1px solid #d6e1d9; border-radius:25px; padding:30px; }
  .contact-page .form-intro { margin-bottom:25px; }
  .contact-page .form-intro h3 { font-size:27px; margin-bottom:9px; }
  .contact-page .form-intro p { font-size:13px; }
  .contact-page .form-grid { gap:20px 18px; }
  .contact-page .form-grid label { color:#355546; font-size:12px; line-height:1.6; }
  .contact-page .form-grid input,.contact-page .form-grid select,.contact-page .form-grid textarea { width:100%; min-height:50px; background:#f6f8ef; border:1px solid #d1dccb; border-radius:11px; padding:12px 13px; color:#204c3b; font-size:14px; }
  .contact-page .form-grid input::placeholder,.contact-page .form-grid textarea::placeholder { color:#6b7a65; }
  .contact-page .form-grid textarea { min-height:110px; resize:vertical; }
  .contact-page .form-grid label:has(#customer-email) { grid-column:1 / -1; }
  .contact-page .field-hint { display:block; color:#607357; font-size:10px; margin-top:7px; line-height:1.5; }
  .contact-page .consent { color:#52664d; font-size:12px; gap:10px; line-height:1.7; margin:22px 0; }
  .contact-page .consent input { accent-color:#24664b; min-height:auto; }
  .contact-page .form-submit { width:100%; justify-content:space-between; }
  .contact-page .form-note { color:#62715c; font-size:11px; line-height:1.7; margin-top:13px; }
  .contact-page .enquiry-review { color:#264c39; }
  .contact-page .enquiry-review h3 { font-size:25px; }
  .contact-page .enquiry-review p { color:#576b51; font-size:13px; }
  .contact-page #enquiry-preview { background:#edf3e4; color:#36513c; border:1px solid #d3dfc9; border-radius:15px; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.8; padding:23px; }
  .contact-page .review-actions { display:flex; flex-wrap:wrap; gap:12px; }
  .contact-page .review-actions .button { padding:12px 16px; font-size:12px; }
  .contact-page .checkout-basket { padding:32px 38px; margin-bottom:40px; background:#f1e7c9; border:1px solid #e5d6a9; border-radius:26px; }
  .contact-page .checkout-basket h2 { font-size:34px; margin-bottom:15px; }
  .contact-page .checkout-basket .basket-line { grid-template-columns:90px 1fr; }
  .contact-page .checkout-basket .basket-line h3 { font-size:18px; }
  .contact-page .source-faq { max-width:1280px!important; padding:0 0 70px; }
  .contact-page .faq-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:55px; }
  .contact-page .faq-intro { background:#e9efdc; padding:32px; border:1px solid #dce4cc; border-radius:28px; align-self:start; }
  .contact-page .faq-intro h2 { font-size:39px; margin-bottom:20px; }
  .contact-page .faq-intro p { font-size:14px; }
  .contact-page .faq-intro img { width:100%; height:155px; object-fit:cover; border-radius:18px 50px 18px 18px; margin-top:28px; }
  .contact-page .source-faq .faq-list { margin:0; }
  .contact-page .faq-list details { border:1px solid #dce3d4; border-radius:17px; padding:0 23px; margin-bottom:12px; background:#fffef8; }
  .contact-page .faq-list details[open] { background:#f5edce; border-color:#e4d7a6; }
  .contact-page .faq-list summary { font-size:15px; font-weight:500; padding-block:23px; color:#2c4f3c; }
  .contact-page .faq-list summary > span { width:28px; height:28px; border-radius:50%; background:#e8efdc; color:#335a42; display:grid; place-items:center; flex-shrink:0; }
  .contact-page .faq-list details p { color:#5e694f; font-size:14px; padding-bottom:23px; }
  .contact-page .contact-support-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:25px; margin-bottom:70px; }
  .contact-page .contact-support-grid .support-section { width:auto; max-width:none!important; padding:34px; border:1px solid #d1dfd1; border-radius:26px; background:#e9efde; }
  .contact-page .contact-support-grid .support-section:last-child { background:#f2e2d4; border-color:#e3cfbd; }
  .contact-page .support-section .section-label { font-size:10px; }
  .contact-page .support-section h2 { font-size:30px; margin-bottom:20px; }
  .contact-page .support-section p { font-size:14px; color:#52634b; }
  .contact-page .support-section:last-child p { color:#6b5645; }

  /* Projects retain every original photograph and all five content sections. */
  .projects-page .project-directory-hero { display:grid; grid-template-columns:1.3fr .7fr; gap:45px; align-items:center; }
  .projects-page #project-list-view .page-intro h1 { font-size:53px; }
  .projects-page .project-directory-hero > div > p { color:#d9e5d4; font-size:16px; }
  .projects-page .project-directory-hero-visual { background:#e4ecde; border:1px solid #bdcbb5; border-radius:25px 60px 25px 25px; padding:12px; margin:0; }
  .projects-page .project-directory-hero-visual img { width:100%; height:182px; object-fit:contain; border-radius:15px; }
  .projects-page .project-directory-hero-visual figcaption { color:#496048; font-size:12px; padding:10px 5px 2px; }
  .projects-page .project-controls { background:#ecf0df; border-color:#d8e0c5; border-radius:22px; }
  .projects-page .project-tile { border-radius:26px; padding:12px 12px 25px; border-color:#d9e3d4; }
  .projects-page .project-tile img { border-radius:18px; }
  .projects-page .project-tile .project-meta { font-size:11px; }
  .projects-page .project-tile h3 { font-size:23px; line-height:1.35; }
  .projects-page .project-tile > .text-link { border-top:1px solid #dce4d5; padding-top:17px; }
  .projects-page .project-gallery-heading { margin-top:36px; }
  .projects-page .project-gallery-link { border-radius:23px; }
  .projects-page .project-gallery-link span { padding:14px 18px; min-height:49px; font-size:12px; }
  .projects-page .project-body-section { border-radius:26px; padding:34px 38px; }
  .projects-page .project-body-section > h2 { font-size:31px; }
  .projects-page .project-story aside { border-radius:26px 60px 26px 26px; background:#f3e4b9; }
  .projects-page .project-story aside h2 { font-size:32px; }
  .projects-page .project-source-note { font-size:12px; }
}

@media (min-width:1001px) and (max-width:1280px) {
  .interior-polished .container { width:calc(100% - 80px); }
  .interior-polished .page-intro { padding:32px 36px; }
  .interior-polished .footer-grid { gap:28px; }
  .contact-page .contact-hero .page-intro-grid { gap:32px; }
  .contact-page .contact-hero h1 { font-size:49px; }
  .contact-page .office-card { padding:25px; }
  .contact-page .office-card .contact-line:last-child { font-size:12px; }
  .contact-page .contact-page-form .contact-grid { padding:32px; gap:32px; grid-template-columns:.8fr 1.2fr; }
  .contact-page .contact-page-form .contact-intro h2 { font-size:37px; }
  .contact-page .contact-form-panel { padding:26px; }
  .contact-page .faq-layout { gap:32px; }
  .contact-page .faq-intro h2 { font-size:34px; }
  .projects-page #project-list-view .page-intro h1 { font-size:46px; }
  .projects-page .project-directory-hero { gap:30px; }
}

/* Structural fallbacks only; dedicated mobile art direction is deferred. */
@media (max-width:1000px) {
  .contact-hero-visual img { width:100%; max-height:280px; object-fit:cover; border-radius:18px; }
  .contact-hero-visual figcaption { font-size:12px; }
  .contact-offices { padding-bottom:30px; }
  .office-cards { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
  .office-card { padding:20px; border:1px solid #d7dfd4; border-radius:18px; }
  .office-card > .icon { margin-bottom:15px; }
  .contact-form-panel { padding:20px; background:#fffff8; border-radius:18px; }
  .enquiry-steps { list-style:none; margin-block:25px; }
  .enquiry-steps li { padding:10px 0; }
  .enquiry-steps span { margin-right:12px; }
  .contact-support-grid { padding-block:25px; }
  .contact-support-grid .support-section { width:100%; }
  .faq-intro img { width:100%; max-height:200px; object-fit:cover; border-radius:16px; margin-block:20px; }
  .project-directory-hero-visual { display:none; }
}
@media (max-width:600px) { .office-cards { grid-template-columns:1fr; } }

/* Projects directory: the exact hero photograph from the original Japston page. */
.projects-page #project-list-view .project-source-hero {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:460px;
  padding:30px 44px 42px;
  border-color:#4c4352;
  background-color:#271e29;
  background-image:linear-gradient(180deg,rgba(0,0,0,.27) 0%,rgba(0,0,0,.38) 38%,rgba(0,0,0,.72) 100%),url('/assets/company/projects-original-hero.png');
  background-size:cover;
  background-position:center 20%;
  background-repeat:no-repeat;
}
.projects-page #project-list-view .project-source-hero::after { content:none; }
.projects-page #project-list-view .project-source-hero .breadcrumbs { color:#f1edf4; margin-bottom:30px; }
.projects-page #project-list-view .project-source-hero .breadcrumbs a { color:#fff3d2; }
.projects-page #project-list-view .project-source-hero .project-directory-hero {
  display:block;
  width:100%;
  max-width:920px;
  margin:0 auto;
  text-align:center;
}
.projects-page #project-list-view .project-source-hero .section-label { color:#f9dc98; text-shadow:0 1px 8px #0006; }
.projects-page #project-list-view .project-source-hero h1 { max-width:none; color:#fffdf7; margin:15px 0 18px; font-size:clamp(38px,4vw,56px); text-shadow:0 2px 20px #0005; }
.projects-page #project-list-view .project-source-hero .project-directory-hero > div > p { max-width:760px; margin:0 auto; color:#fffaf3; font-size:16px; line-height:1.7; text-shadow:0 1px 8px #0008; }
@media(min-width:1001px) and (max-width:1280px) {
  .projects-page #project-list-view .project-source-hero { min-height:430px; padding:28px 36px 36px; }
}
@media(max-width:1000px) {
  .projects-page #project-list-view .project-source-hero { min-height:410px; padding:26px; background-position:center 22%; }
  .projects-page #project-list-view .project-source-hero h1 { font-size:36px; }
  .projects-page #project-list-view .project-source-hero .project-directory-hero > div > p { font-size:14px; }
}
