/* Contact page composition; shared typography, colors and components come from design-system.css. */
.contact-editorial { background:var(--ink-ivory); }
.contact-editorial .custom_container { text-align:left; }
.contact-editorial :is(p,h1,h2,h3) { text-align:inherit; }
.contact-enquiry-copy h2 em { display:block; }
.contact-intro { position:relative; overflow:hidden; background:var(--ink-ivory) url('../images/services/paper-texture.svg') center/700px; }
.contact-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--ink-column-gap); align-items:center; }
.contact-intro-copy { min-width:0; }
.contact-breadcrumb { display:flex; gap:12px; align-items:center; margin-bottom:32px; color:var(--ink-muted); font-size:12px; }
.contact-breadcrumb a { color:var(--ink-green); text-decoration:none; }
.contact-breadcrumb a:hover { text-decoration:underline; }
.contact-intro h1 { max-width:600px; margin:0 0 24px; }
.contact-intro h1 em { display:block; }
.contact-intro-copy > p:not(.ink-eyebrow) { max-width:560px; margin-bottom:32px; }
.contact-intro-actions { display:flex; flex-wrap:wrap; gap:16px; }
.contact-intro-note { display:flex; align-items:center; gap:12px; margin-top:28px; font-size:13px; color:var(--ink-body); }
.contact-intro-note > span { color:var(--ink-gold-ink); font-size:22px; }
.contact-intro-art { position:relative; margin:0 0 24px; min-width:0; padding:12px; border:1px solid var(--ink-border); border-radius:100px 18px 18px; }
.contact-intro-art > img { display:block; width:100%; height:520px; object-fit:cover; object-position:54% center; border-radius:90px 10px 10px; }
.contact-intro-art figcaption { position:absolute; bottom:-24px; left:32px; right:24px; display:flex; align-items:center; gap:16px; padding:22px 24px; background:var(--ink-paper); border:1px solid var(--ink-border); border-radius:var(--ink-radius); box-shadow:var(--ink-shadow); color:var(--ink-green); font-size:21px; line-height:1.35; }
.contact-intro-art figcaption > span { color:var(--ink-gold-ink); font-size:28px; }
.contact-channels { background:var(--ink-paper); }
.contact-section-heading { max-width:850px; margin-bottom:40px; }
.contact-section-heading h2 { margin:0; }
.contact-channel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ink-grid-gap); }
.contact-channel { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.contact-channel-icon { display:grid; place-items:center; width:56px; height:56px; border:1px solid var(--ink-border); border-radius:50%; background:var(--ink-ivory); color:var(--ink-gold-ink); font-size:23px; margin-bottom:24px; }
.contact-channel h3 { margin-bottom:12px; }
.contact-channel p { margin-bottom:20px; }
.contact-channel a { margin-top:auto; font-size:14px; overflow-wrap:anywhere; }
.contact-channel address { margin:0; font:400 14px/1.8 var(--ink-font-body); color:var(--ink-green); }
.contact-conversation { position:relative; scroll-margin-top:24px; overflow:hidden; }
.contact-conversation::before { content:''; position:absolute; inset:0; background:url('../images/services/botanical.svg') left bottom/460px no-repeat; opacity:.06; pointer-events:none; }
.contact-enquiry-grid { position:relative; display:grid; grid-template-columns:.85fr 1.15fr; align-items:start; gap:80px; }
.contact-enquiry-copy { padding-top:24px; min-width:0; }
.contact-enquiry-copy h2 { margin:0 0 24px; }
.contact-enquiry-copy > p:not(.ink-eyebrow) { margin-bottom:40px; }
.contact-next-steps { list-style:none; padding:0; margin:0 0 36px; }
.contact-next-steps li { display:flex; align-items:flex-start; gap:20px; padding:24px 0; border-top:1px solid #d9b67638; }
.contact-next-steps li > span { display:grid; place-items:center; flex:0 0 42px; height:42px; border:1px solid #d9b67680; border-radius:50%; color:var(--ink-gold); font-size:12px; }
.contact-next-steps h3 { margin:0 0 8px; }
.contact-next-steps p { margin:0; }
.contact-services-link { color:var(--ink-gold)!important; }
.contact-enquiry-card { position:relative; min-width:0; scroll-margin-top:24px; }
.contact-enquiry-card > h3 { margin:0 0 12px; }
.contact-enquiry-card > .contact-form-description { margin-bottom:28px; }
.contact-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ink-grid-gap); }
.contact-form-group { min-width:0; }
.contact-input { width:100%; }
.contact-textarea { min-height:140px; resize:vertical; }
.contact-editorial .contact-select { appearance:auto; padding-right:32px; }
.contact-enquiry-card .contact-submit { width:100%; cursor:pointer; }
.contact-enquiry-card .contact-privacy-note { margin:18px 0 0; }
.contact-privacy-note a { color:var(--ink-green); text-decoration:underline; text-underline-offset:3px; }
.contact-questions { background:var(--ink-ivory); }
.contact-question-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.contact-question-grid h2 { margin:0 0 24px; }
.contact-question-grid > div > p:not(.ink-eyebrow) { margin-bottom:24px; }
.contact-question-list { display:grid; gap:16px; }
.contact-question-list details { background:var(--ink-paper); overflow:hidden; }
.contact-question-list summary { position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; list-style:none; cursor:pointer; padding:24px; }
.contact-question-list summary::-webkit-details-marker { display:none; }
.contact-question-list summary::after { content:'+'; color:var(--ink-gold-ink); font:300 28px/1 var(--ink-font-body); }
.contact-question-list details[open] summary::after { content:'−'; }
.contact-question-list details[open] summary { border-bottom:1px solid var(--ink-border); }
.contact-question-list details > p { padding:24px; margin:0; }
.contact-editorial :is(a,summary):focus-visible { outline:2px solid var(--ink-gold-ink); outline-offset:5px; }
@media (min-width:768px) {
  .inkstone-design .contact-enquiry-card.ink-card { padding:40px!important; }
}
@media (max-width:1099px) {
  .contact-intro-grid,.contact-enquiry-grid,.contact-question-grid { gap:40px; }
  .contact-intro-art > img { height:460px; }
  .contact-intro-art figcaption { left:20px; right:16px; padding:18px; }
  .contact-channel-grid { gap:16px; }
}
@media (max-width:991px) {
  .contact-intro-grid,.contact-enquiry-grid,.contact-question-grid { grid-template-columns:1fr; }
  .contact-enquiry-copy { max-width:640px; }
  .contact-intro-art > img { height:440px; }
}
@media (max-width:767px) {
  .contact-intro-grid,.contact-enquiry-grid,.contact-question-grid,.contact-channel-grid { grid-template-columns:1fr; }
  .contact-breadcrumb { margin-bottom:24px; }
  .contact-intro-grid { gap:40px; }
  .contact-intro-art { margin-bottom:24px; border-top-left-radius:64px; }
  .contact-intro-art > img { height:360px; border-top-left-radius:54px; }
  .contact-intro-art figcaption { font-size:19px; }
  .contact-enquiry-copy { padding-top:0; }
  .contact-next-steps li { padding:20px 0; }
  .contact-form-row { grid-template-columns:1fr; gap:0; }
  .contact-section-heading { margin-bottom:28px; }
  .contact-channel a { font-size:14px; }
  .contact-question-list summary { padding:20px; }
  .contact-question-list details > p { padding:20px; }
}
@media (max-width:399px) {
  .contact-intro-actions { flex-direction:column; align-items:stretch; }
  .contact-intro-art > img { height:300px; }
  .contact-intro-art figcaption { left:16px; right:12px; }
}
.contact-attach {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 62px;
    padding: 12px 22px;
    border: 1px dashed rgba(54, 86, 66, .35);
    border-radius: 10px;
    background: var(--ink-paper);
    color: var(--ink-body);
    font-size: 15px;
    cursor: pointer;
    transition: .25s ease;
}

.contact-attach:hover,
.contact-attach.is-drag {
    border-color: var(--ink-gold-ink);
    box-shadow: 0 0 0 4px #d9b67624;
}

.contact-attach input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.contact-attach__icon {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--ink-ivory);
    display: grid;
    place-items: center;
    color: var(--ink-green);
    font-size: 16px;
}

.contact-attach__label b {
    color: var(--ink-green);
}

.contact-attach__hint {
    margin: 8px 2px 0;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--ink-muted);
}

.contact-attach__error {
    display: none;
    margin: 8px 2px 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink-error);
}

.contact-attach__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.contact-attach__list:empty {
    display: none;
}

.contact-attach__file {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    padding: 7px 12px;
    border: 1px solid var(--ink-border);
    border-radius: 999px;
    background: var(--ink-ivory);
    color: var(--ink-green);
    font-size: 13px;
}

.contact-attach__file span {
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact-attach__file small {
    color: var(--ink-muted);
}

.contact-attach__remove {
    border: 0;
    background: none;
    color: var(--ink-muted);
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
    padding: 0 2px;
}

.contact-attach__remove:hover {
    color: var(--ink-error);
}


.contact-attach:focus-within { outline:2px solid var(--ink-gold-ink); outline-offset:4px; }
