/* Site footer: designs A (editorial), B (savanna), C (split) and the sliding photo strip.
   Content, colours and photos are edited in Admin > Appearance > Footer Variations. */

.ft {
    --ft-ease: cubic-bezier(.16, 1, .3, 1);
    --ft-gold: var(--theme-color, #e49759);
    font-size: 16px;
    line-height: 1.6;
}

.ft a { text-decoration: none; }
:where(.ft) ul { margin: 0; padding: 0; list-style: none; }
:where(.ft) h2, :where(.ft) h3 { margin: 0; text-transform: none; }
.ft :focus-visible { outline: 3px solid var(--ft-gold); outline-offset: 3px; border-radius: 4px; }
.ft input::placeholder { opacity: 1; }

/* =====================================================================
   A. Editorial: warm paper, one oversized word, hairline rules
   ===================================================================== */

.ft-a {
    --a-ink: #1c1a17;
    --a-text: #4a443c;
    --a-rule: rgba(28, 26, 23, .2);
    padding: 104px 0 0;
    background: #f6f1e7;
    color: var(--a-text);
    overflow: hidden;
}

.ft-a a { color: var(--a-ink); }

.ft-a__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 40px 80px;
    align-items: end;
    padding-bottom: 72px;
    border-bottom: 1px solid var(--a-rule);
}

.ft-a__big {
    color: var(--a-ink);
    font-size: clamp(76px, 14vw, 210px);
    font-weight: 800;
    line-height: .82;
    letter-spacing: -.055em;
}

.ft-a__lead p {
    max-width: 34ch;
    margin: 0 0 26px;
    color: var(--a-ink);
    font-size: 20px;
    line-height: 1.55;
}

.ft-a__actions { display: flex; flex-wrap: wrap; gap: 12px 34px; }

.ft-a__actions a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 5px;
    border-bottom: 2px solid var(--ft-gold);
    font-size: 20px;
    font-weight: 700;
    transition: gap .25s var(--ft-ease), border-color .25s;
}

.ft-a__actions a:hover { gap: 16px; border-color: var(--a-ink); }

.ft-a__grid {
    display: grid;
    grid-template-columns: 1.7fr 1fr 1.25fr 1.25fr;
    gap: 48px;
    padding: 64px 0;
}

.ft-a h3 {
    margin-bottom: 22px;
    color: #756d60;
    font-size: 14.5px;
    font-weight: 600;
}

.ft-a__big-link {
    display: block;
    margin-bottom: 8px;
    font-size: clamp(22px, 2.3vw, 32px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
    overflow-wrap: anywhere;
}

.ft-a__big-link--mail { font-size: clamp(15px, 1.4vw, 19px); overflow-wrap: break-word; }
.ft-a__big-link:hover { color: #9c4a26; }

.ft-a address {
    margin: 14px 0 0;
    color: var(--a-text);
    font-size: 17px;
    font-style: normal;
}

.ft-a ul { display: grid; gap: 11px; }

.ft-a__col li a {
    color: var(--a-ink);
    font-size: 17px;
    font-weight: 500;
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat;
    transition: background-size .3s var(--ft-ease);
}

.ft-a__col li a:hover { background-size: 100% 1.5px; }

.ft-a__news {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px 56px;
    padding: 44px 0;
    border-top: 1px solid var(--a-rule);
}

.ft-a__news form { flex: 1 1 420px; max-width: 640px; }

.ft-a__news label {
    display: block;
    margin-bottom: 14px;
    color: var(--a-ink);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
}

.ft-a__field {
    display: flex;
    align-items: center;
    gap: 16px;
    border-bottom: 2px solid var(--a-ink);
}

.ft-a__field input {
    flex: 1;
    min-width: 0;
    height: 56px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--a-ink);
    font: inherit;
    font-size: 20px;
    box-shadow: none;
}

.ft-a__field input::placeholder { color: #8d8576; }

.ft-a__field button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--a-ink);
    font: inherit;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
}

.ft-a__field button:hover { color: #9c4a26; }

.ft-a__social { display: flex; flex-wrap: wrap; gap: 8px 26px; }

.ft-a__social a {
    font-size: 16px;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 5px;
}

.ft-a__social a:hover { color: #9c4a26; }

/* The giant name along the bottom edge: drawn as an outline so it stays a quiet backdrop. */
.ft-a__mark {
    margin: 12px 0 -.1em;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(28, 26, 23, .17);
    font-size: min(8.4vw, 148px);
    font-weight: 800;
    line-height: .95;
    letter-spacing: -.045em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    user-select: none;
}

.ft-a__bottom {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 28px;
    padding: 22px 0 30px;
    border-top: 1px solid var(--a-rule);
    font-size: 14.5px;
}

.ft-a__bottom p { margin: 0; }
.ft-a__bottom ul { display: flex; gap: 6px 24px; }
.ft-a__bottom a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* =====================================================================
   B. Savanna: photograph + deep earth browns
   ===================================================================== */

.ft-b {
    --b-bg: var(--ft-panel, #1f1510);
    --b-cream: #f6ecda;
    --b-text: rgba(246, 236, 218, .74);
    --b-line: rgba(246, 236, 218, .14);
    background: var(--b-bg);
    color: var(--b-text);
}

.ft-b a { color: inherit; }

.ft-b__hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 520px;
    padding: 140px 0 80px;
    background: #3a2a1f center / cover no-repeat;
    color: #fff;
}

.ft-b__hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, color-mix(in srgb, var(--b-bg) 25%, transparent) 0%, color-mix(in srgb, var(--b-bg) 55%, transparent) 45%, color-mix(in srgb, var(--b-bg) 96%, transparent) 100%);
}

.ft-b__hero .container { position: relative; }

.ft-b__hero h2 {
    max-width: 16ch;
    color: #fff;
    font-size: clamp(40px, 6vw, 84px);
    line-height: 1.02;
    letter-spacing: -.03em;
    text-wrap: balance;
}

.ft-b__hero p {
    max-width: 46ch;
    margin: 20px 0 0;
    color: rgba(255, 255, 255, .88);
    font-size: 19px;
}

.ft-b__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

.ft-b__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 0 28px;
    border: 1.5px solid transparent;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    transition: transform .25s var(--ft-ease), background-color .25s, border-color .25s;
}

.ft-b .ft-b__btn--solid { background: var(--ft-gold); color: #1f1510; }
.ft-b__btn--solid:hover { transform: translateY(-2px); }
.ft-b .ft-b__btn--line { border-color: rgba(255, 255, 255, .6); color: #fff; }
.ft-b__btn--line:hover { border-color: #fff; background: rgba(255, 255, 255, .1); }

.ft-b__body { padding: 64px 0 0; }

.ft-b__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px 48px;
    padding-bottom: 48px;
}

.ft-b__logo {
    display: grid;
    place-items: center;
    padding: 10px 14px;
    border-radius: 14px;
    background: var(--b-cream);
}

.ft-b__logo img { display: block; width: 58px; height: auto; }

.ft-b__contact { display: flex; flex-wrap: wrap; gap: 14px 40px; }

.ft-b__contact li { display: inline-flex; align-items: center; gap: 12px; color: var(--b-cream); font-size: 17px; font-weight: 600; }
.ft-b__contact i { color: var(--ft-gold); }
.ft-b__contact a:hover { text-decoration: underline; text-underline-offset: 4px; }

.ft-b__cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.4fr);
    gap: 40px;
    padding: 52px 0;
    border-top: 1px solid var(--b-line);
}

.ft-b h3 { margin-bottom: 18px; color: var(--b-cream); font-size: 17px; font-weight: 700; }
.ft-b__cols ul { display: grid; gap: 11px; }
.ft-b__cols nav a { transition: color .2s; }
.ft-b__cols nav a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--ft-gold); text-underline-offset: 4px; }

.ft-b__news form { display: flex; gap: 8px; }

.ft-b__news input {
    flex: 1;
    min-width: 0;
    height: 50px;
    padding: 0 16px;
    border: 1px solid var(--b-line);
    border-radius: 12px;
    outline: 0;
    background: rgba(255, 255, 255, .06);
    color: #fff;
    font: inherit;
    font-size: 15px;
    box-shadow: none;
}

.ft-b__news input:focus { border-color: var(--ft-gold); }
.ft-b__news input::placeholder { color: rgba(246, 236, 218, .55); }

.ft-b__news button {
    height: 50px;
    padding: 0 20px;
    border: 0;
    border-radius: 12px;
    background: var(--ft-gold);
    color: #1f1510;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
}

.ft-b__social { display: flex; gap: 10px; margin-top: 22px; }

.ft-b__social a {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--b-line);
    border-radius: 12px;
    color: var(--b-cream);
    transition: background-color .25s, border-color .25s, color .25s;
}

.ft-b__social a:hover { border-color: var(--ft-gold); background: var(--ft-gold); color: #1f1510; }

.ft-b__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 28px;
    padding: 24px 0 30px;
    border-top: 1px solid var(--b-line);
    font-size: 14.5px;
}

.ft-b__bottom p { margin: 0; }
.ft-b__bottom ul { display: flex; gap: 6px 24px; }
.ft-b__bottom a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* =====================================================================
   C. Split: terracotta contact panel + light navigation panel
   ===================================================================== */

.ft-c {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}

.ft-c__left {
    background: var(--ft-panel, #9c4a26);
    color: rgba(255, 255, 255, .88);
    padding: 96px 56px 80px max(24px, calc((100vw - 1296px) / 2));
}

.ft-c__right {
    background: #fbf8f3;
    color: #5b544b;
    padding: 96px max(24px, calc((100vw - 1296px) / 2)) 36px 72px;
}

.ft-c__inner { max-width: 560px; }
.ft-c__right .ft-c__inner { max-width: none; }

.ft-c a { color: inherit; }

.ft-c__logo {
    display: inline-grid;
    place-items: center;
    padding: 10px 14px;
    border-radius: 14px;
    background: #f6f1e7;
}

.ft-c__logo img { display: block; width: 58px; height: auto; }

.ft-c__left h2 {
    margin: 30px 0 16px;
    color: #fff;
    font-size: clamp(38px, 4.4vw, 62px);
    line-height: 1.02;
    letter-spacing: -.03em;
    text-wrap: balance;
}

.ft-c__left > .ft-c__inner > p { max-width: 38ch; margin: 0; font-size: 18px; }

.ft-c__contact { display: grid; gap: 20px; margin: 40px 0 0; }

.ft-c__contact span { display: block; font-size: 13.5px; opacity: .72; }

.ft-c__contact a,
.ft-c__contact address {
    margin: 0;
    color: #fff;
    font-size: 21px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.ft-c__contact a:hover { text-decoration: underline; text-underline-offset: 4px; }

.ft-c__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }

.ft-c__btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 0 26px;
    border: 1.5px solid transparent;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    transition: transform .25s var(--ft-ease), background-color .25s, border-color .25s;
}

.ft-c .ft-c__btn--solid { background: #f6f1e7; color: #5a2610; }
.ft-c__btn--solid:hover { transform: translateY(-2px); }
.ft-c .ft-c__btn--line { border-color: rgba(255, 255, 255, .6); color: #fff; }
.ft-c__btn--line:hover { border-color: #fff; background: rgba(255, 255, 255, .1); }

.ft-c__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }

.ft-c h3 { margin-bottom: 18px; color: #1c1a17; font-size: 16px; font-weight: 700; }
.ft-c__cols ul { display: grid; gap: 11px; }
.ft-c__cols a { font-size: 16px; transition: color .2s; }
.ft-c__cols a:hover { color: #9c4a26; text-decoration: underline; text-underline-offset: 4px; }

.ft-c__news { margin-top: 56px; padding-top: 40px; border-top: 1px solid #e5ddd0; }

.ft-c__news label { display: block; margin-bottom: 12px; color: #1c1a17; font-size: 19px; font-weight: 700; line-height: 1.3; }

.ft-c__news div { display: flex; align-items: center; gap: 14px; max-width: 520px; border-bottom: 2px solid #1c1a17; }

.ft-c__news input {
    flex: 1;
    min-width: 0;
    height: 52px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #1c1a17;
    font: inherit;
    font-size: 17px;
    box-shadow: none;
}

.ft-c__news input::placeholder { color: #8d8576; }

.ft-c__news button {
    padding: 0;
    border: 0;
    background: none;
    color: #9c4a26;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
}

.ft-c__news button:hover { text-decoration: underline; text-underline-offset: 4px; }

.ft-c__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; margin-top: 44px; }

.ft-c__social { display: flex; gap: 10px; }

.ft-c__social a {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid #d9cfbf;
    border-radius: 10px;
    color: #1c1a17;
    transition: background-color .25s, border-color .25s, color .25s;
}

.ft-c__social a:hover { border-color: #9c4a26; background: #9c4a26; color: #fff; }

.ft-c__legal { display: flex; gap: 6px 22px; font-size: 14.5px; }
.ft-c__legal a:hover { color: #1c1a17; text-decoration: underline; text-underline-offset: 3px; }

.ft-c__copy { margin: 18px 0 0; font-size: 14px; color: #7b7366; }

/* ---------- Responsive ---------- */

@media (max-width: 991px) {
    .ft-a { padding-top: 72px; }
    .ft-a__hero { grid-template-columns: 1fr; gap: 28px; padding-bottom: 52px; }
    .ft-a__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 28px; padding: 48px 0; }
    .ft-b__hero { min-height: 440px; padding: 110px 0 60px; }
    .ft-b__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ft-b__news { grid-column: 1 / -1; }
    .ft-c { grid-template-columns: 1fr; }
    .ft-c__left { padding: 64px 24px; }
    .ft-c__right { padding: 56px 24px 32px; }
    .ft-c__inner { max-width: 640px; }
}

@media (max-width: 575px) {
    .ft-a__grid { grid-template-columns: 1fr; }
    .ft-a__news form { flex-basis: 100%; }
    .ft-b__cols { grid-template-columns: 1fr; }
    .ft-c__cols { grid-template-columns: 1fr 1fr; }
    .ft-c__cols nav:last-child { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
    .ft *, .ft *::before { transition: none !important; }
}

/* ---------- Small shared pieces ---------- */

.ft-error { display: block; margin-top: 8px; color: #c2412b; font-size: 14px; }
.ft-b .ft-error { color: #ff9c8a; }

.ft-a__news label span,
.ft-c__news label span {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    color: inherit;
    opacity: .75;
}

.ft-a__tag { margin: 18px 0 0; max-width: 28ch; font-size: 16px; color: var(--a-text); }
.ft-b__tag { margin: 0; color: var(--b-cream); font-size: 17px; font-weight: 600; max-width: 26ch; }
.ft-c__tag { margin: 0 0 40px; max-width: 40ch; color: #1c1a17; font-size: 19px; font-weight: 600; line-height: 1.45; }

.ft-b__news p { max-width: 34ch; margin: 0 0 16px; font-size: 15px; }

/* ---------- Sliding photo strip (above the footer on every page) ---------- */

.ft-strip {
    overflow: hidden;
    line-height: 0;
    background: #f6f1e7;
}

.ft-strip__track {
    display: flex;
    width: max-content;
    animation: ftStrip var(--ft-strip-duration, 40s) linear infinite;
}

.ft-strip:hover .ft-strip__track { animation-play-state: paused; }

.ft-strip__set {
    display: flex;
    flex: none;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ft-strip__set li { flex: none; width: 240px; height: 240px; background: #e6dfd0; }

.ft-strip__set img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@keyframes ftStrip {
    to { transform: translateX(-50%); }
}

@media (max-width: 767px) {
    .ft-strip__set li { width: 160px; height: 160px; }
}

@media (prefers-reduced-motion: reduce) {
    .ft-strip { overflow-x: auto; }
    .ft-strip__track { animation: none; }
    .ft-strip__set[aria-hidden="true"] { display: none; }
}

/* ---------- Back to top (shared button) ---------- */

.back-to-top {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    line-height: 1;
    border: 0;
    box-shadow: 0 10px 24px -8px rgba(21, 20, 21, .55);
    right: 24px;
    bottom: 24px;
}

.back-to-top:hover {
    background-color: var(--header);
    box-shadow: 0 0 0 2px var(--theme-color), 0 10px 24px -8px rgba(21, 20, 21, .55);
    transform: translateY(-3px);
}
