@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--red:#ce0707;--ink:#191919;--paper:#fffefa;--line:#e7ded5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #246db3;outline-offset:5px}.skip{position:absolute;top:-70px}.skip:focus{top:0;z-index:20;background:white;padding:15px}.shell{width:min(1440px,90%);margin:auto}.header{height:164px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:4}.brand{display:block;width:228px;height:122px;position:relative;overflow:hidden}.brand .reference-logo{position:absolute;width:1045px;max-width:none;left:-55px;top:-7px;mix-blend-mode:multiply}.brand .custom-logo{width:100%;height:100%;object-fit:contain}.nav{display:flex;gap:44px;align-items:center}.nav a{text-decoration:none;font-size:18px;font-weight:700;padding:10px 0}.nav a:hover,.nav a[aria-current=page]{color:var(--red)}.nav a[aria-current=page]{box-shadow:0 2px var(--red)}.menu-toggle{display:none}.hero{position:relative;min-height:650px;isolation:isolate}.hero-copy{position:relative;z-index:2;width:44%;padding-top:8px;pointer-events:none}.hero-copy a{pointer-events:auto}.eyebrow{color:var(--red);font-size:14px;letter-spacing:.28em;font-weight:600;text-transform:uppercase;margin:0 0 16px}.hero h1{font-family:Georgia,serif;font-size:clamp(68px,7.5vw,112px);line-height:.87;letter-spacing:-.055em;color:var(--red);margin:0 0 22px;font-weight:900;white-space:pre-line;max-width:560px}.hero .intro{font-family:'Libre Caslon Display',Georgia,serif;font-size:34px;line-height:1.1;color:var(--red);max-width:365px;margin:0 0 28px}.button{background:var(--red);border:1px solid var(--red);color:white;border-radius:50px;text-decoration:none;display:inline-flex;align-items:center;justify-content:space-between;gap:38px;padding:20px 30px;font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.button:hover{background:#a50000}.button span{font-size:26px;line-height:14px}.hero-art{position:absolute;width:85%;height:760px;right:-4%;top:-91px;z-index:0;overflow:hidden;pointer-events:none}.hero-art .reference-art{position:absolute;width:132%;max-width:none;left:-31%;top:0;mix-blend-mode:multiply;clip-path:polygon(32% 43%,64% 24%,81% 12%,90% 12%,91% 29%,100% 33%,100% 100%,29% 100%,41% 72%)}.hero-art .custom-art{width:100%;height:100%;object-fit:contain}.home-note{border-top:1px solid var(--line);padding:54px 0;display:flex;align-items:center;justify-content:space-between;gap:30px}.home-note p{font-family:'Libre Caslon Display',Georgia,serif;color:var(--red);font-size:38px;max-width:660px;margin:0}.text-link{font-weight:700;text-underline-offset:6px;color:var(--red)}footer{border-top:1px solid var(--line);padding:26px 0;margin-top:50px}.footer-row{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:#625b55}.page-heading{padding:55px 0 54px;max-width:950px}.page-heading h1{font-family:Georgia,serif;font-size:clamp(54px,7vw,100px);letter-spacing:-.06em;line-height:1;color:var(--red);margin:12px 0 25px}.page-heading .lead{font-size:21px;line-height:1.6;max-width:650px}.section-nav{display:flex;gap:30px;flex-wrap:wrap;padding:0 0 35px;border-bottom:1px solid var(--line)}.section-nav a{text-decoration:none;color:var(--red);font-weight:600}.service-row{display:grid;grid-template-columns:100px 1fr 1.15fr;gap:25px;padding:55px 0;border-bottom:1px solid var(--line);scroll-margin-top:25px}.number{font-size:13px;color:var(--red);letter-spacing:.1em}h2{font-family:'Libre Caslon Display',Georgia,serif;color:var(--red);font-size:42px;line-height:1.1;font-weight:400;margin:0 0 20px}p{line-height:1.65}.service-row p{margin-top:0;max-width:570px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.tags span{border:1px solid var(--line);padding:9px 14px;border-radius:30px;font-size:13px}.story-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.photo-slot{aspect-ratio:5/4;background:#f4eee5;display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid var(--line);color:var(--red);text-align:center;padding:30px}.photo-slot .monogram{font:italic bold 100px Georgia,serif;margin-bottom:25px}.photo-slot img{width:100%;height:100%;object-fit:cover}.photo-slot:has(img){padding:0}.caption{font-size:13px;color:#756b63}.story-copy{padding-top:12px}.story-copy p{font-size:18px;margin-bottom:35px}.contact-info>a{font-size:clamp(18px,2vw,28px);color:var(--red);text-underline-offset:6px}.contact-info p{max-width:360px}.contact-form{background:#f5efe7;padding:36px}.field{display:flex;flex-direction:column;gap:9px;margin-bottom:20px}.field label{font-size:13px;font-weight:700}.field input,.field textarea,.field select{width:100%;border:1px solid #d6ccc0;background:var(--paper);border-radius:3px;padding:13px;color:var(--ink)}.field textarea{min-height:140px;resize:vertical}.form-note{font-size:12px;color:#665c52;line-height:1.5}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.editor-actions{display:flex;gap:16px;flex-wrap:wrap;margin:30px 0}.status{color:var(--red);font-weight:600}.secondary{background:transparent;color:var(--red)}.secondary:hover{color:white} @media(min-width:1500px){.hero-art{height:850px}.hero{min-height:730px}}@media(max-width:1000px){.nav{gap:24px}.hero{min-height:570px}.hero-art{top:0}.hero h1{font-size:80px}.hero .intro{font-size:29px;max-width:290px}.service-row{grid-template-columns:50px 1fr 1.2fr}.contact-grid,.story-grid{gap:35px}}@media(max-width:700px){.shell{width:89%}.header{height:118px}.brand{width:165px;height:90px}.brand .reference-logo{width:760px;left:-40px;top:-5px}.menu-toggle{display:block;border:1px solid var(--red);background:transparent;color:var(--red);border-radius:30px;padding:11px 17px;font-weight:600}.nav{display:none;position:absolute;top:102px;right:0;background:var(--paper);border:1px solid var(--line);padding:20px;min-width:215px;box-shadow:0 10px 30px #00000010}.nav.open{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.hero{min-height:0;display:flex;flex-direction:column}.hero-copy{width:100%;padding-top:22px}.eyebrow{font-size:11px;letter-spacing:.23em}.hero h1{font-size:clamp(64px,15vw,95px);max-width:100%;line-height:.9;letter-spacing:-.055em}.hero .intro{font-size:28px;max-width:320px}.button{padding:17px 24px;font-size:12px}.hero-art{position:relative;top:auto;right:auto;margin:0 -6% -5%;width:112%;height:auto;aspect-ratio:1.16;overflow:hidden}.hero-art .reference-art{width:156%;left:-50%;top:-15%}.hero-art .custom-art{position:absolute}.home-note{padding:35px 0;align-items:flex-start;flex-direction:column}.home-note p{font-size:30px}.footer-row{flex-direction:column;gap:10px}.page-heading{padding:30px 0}.page-heading .lead{font-size:18px}.section-nav{gap:15px 24px;font-size:14px}.service-row{grid-template-columns:30px 1fr;gap:15px;padding:35px 0}.service-row>div:last-child{grid-column:2}.service-row h2{margin-bottom:0;font-size:34px}.story-grid,.contact-grid,.edit-grid{grid-template-columns:1fr;gap:30px}.contact-form{padding:24px}.photo-slot .monogram{font-size:70px}footer{margin-top:35px}}

/* Reference artwork is temporary; replace it in the content editor. */
:root{--paper:#ffffff}.brand{height:112px}.hero{overflow:hidden}.hero-art{right:-4%}@media(max-width:700px){.brand{height:82px}.hero{overflow:visible}.hero-art .reference-art{top:-6%}.hero-art{margin-top:12px;margin-bottom:0;aspect-ratio:1.05}}


/* Fade the temporary homepage artwork instead of cutting it off at the section edge.
   Uploaded replacement artwork is intentionally unaffected. */
@media (min-width: 1001px) {
  .hero-art:has(.reference-art) {
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 65%, transparent 89%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 65%, transparent 89%);
  }
}
@media (min-width: 701px) and (max-width: 1000px) {
  .hero-art:has(.reference-art) {
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 43%, transparent 70%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 43%, transparent 70%);
  }
}


/* Hide the extraneous red lettering on the right of the temporary reference artwork.
   This only affects the reference screenshot, not future uploaded homepage images. */
.hero-art:has(.reference-art)::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: -1px;
  top: 45%;
  bottom: -1px;
  width: 32%;
  pointer-events: none;
  background: linear-gradient(to right, transparent, #fff 35%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 18%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 18%);
}


/* Expandable menu image in the Our Services menu column */
.menu-disclosure { margin: 23px 0 20px; max-width: 620px; }
.menu-disclosure summary {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 32px;
  border: 1px solid var(--red); border-radius: 40px; padding: 13px 20px;
  color: var(--red); font: 700 14px 'DM Sans',Arial,sans-serif;
  letter-spacing: .04em; cursor: pointer; list-style: none;
  transition: color .15s ease, background-color .15s ease;
}
.menu-disclosure summary::-webkit-details-marker { display: none; }
.menu-disclosure summary:hover { background: var(--red); color: white; }
.menu-disclosure .menu-chevron { font-size: 19px; line-height: 1; transition: transform .2s ease; }
.menu-disclosure[open] .menu-chevron { transform: rotate(180deg); }
.menu-disclosure .menu-sheet { margin-top: 18px; }
.menu-disclosure .menu-sheet a { display: block; width: 100%; text-decoration: none; }
.menu-disclosure .menu-sheet img { width: 100%; height: auto; display: block; border: 1px solid var(--line); }
.menu-disclosure .menu-sheet span { display: inline-block; color: var(--red); font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; margin-top: 12px; }
@media (max-width: 700px) {
  .menu-disclosure { margin: 18px 0 20px; }
  .menu-disclosure summary { font-size: 13px; padding: 13px 18px; }
}
