/* Homepage: Elementor widgets (TWN Home Hero / Fashion / Beauty / Tech / Lifestyle / Travel / Newsletter).
   Values are the Tailwind sizes of the prototype, 1:1. Keep selectors at 3 classes or fewer so the
   Style-tab controls (which Elementor scopes under the widget id) always win. */

@keyframes twn-spin { to { transform: rotate(360deg); } }

.twn-sec, .twn-nl, .twn-hero { font-family: 'Poppins', sans-serif; color: #3B2F2F; -webkit-font-smoothing: antialiased; }

/* ---------- Section shell ---------- */
.twn-sec { position: relative; width: 100%; max-width: 80rem; margin: 0 auto; padding: 2.5rem 1rem; border-bottom: 1px solid rgb(210 181 123 / .2); }
@media (min-width: 640px) { .twn-sec { padding: 3.5rem 1.5rem; } }
@media (min-width: 1024px) { .twn-sec { padding-left: 2rem; padding-right: 2rem; } }
.twn-sec--full { max-width: none; padding: 2.5rem 0; background: #FDF6ED; }
@media (min-width: 640px) { .twn-sec--full { padding: 3.5rem 0; } }
@media (min-width: 1024px) { .twn-sec--full { padding-left: 0; padding-right: 0; } }
.twn-sec__in { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .twn-sec__in { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .twn-sec__in { padding: 0 2rem; } }

/* ---------- Section header ---------- */
.twn-sh { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
@media (min-width: 640px) { .twn-sh { gap: 1.5rem; margin-bottom: 2.5rem; } }
@media (min-width: 768px) { .twn-sh { flex-direction: row; align-items: flex-end; } }
.twn-sh__title { margin: 0; font-family: 'Abril Fatface', Georgia, serif; font-weight: 400; font-size: 1.875rem; line-height: 1.25; letter-spacing: -.025em; color: #1A1A1A; }
@media (min-width: 640px) { .twn-sh__title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .twn-sh__title { font-size: 3rem; } }
.twn-sh__dot { color: #C9A96A; }
.twn-sh__desc { margin: .5rem 0 0; max-width: 36rem; font-size: .75rem; line-height: 1.625; color: #615349; font-weight: 400; }
@media (min-width: 640px) { .twn-sh__desc { margin-top: .625rem; font-size: .875rem; } }
.twn-sh__btn { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid rgb(184 144 71 / .6); color: #1A1A1A; background: transparent; border-radius: 9999px; padding: .5rem 1.25rem; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .18em; font-weight: 500; box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: all .3s; text-decoration: none; }
@media (min-width: 640px) { .twn-sh__btn { padding: .625rem 1.5rem; } }
.twn-sh__btn:hover { border-color: #B89047; background: #B89047; color: #fff; box-shadow: 0 1px 3px rgb(0 0 0 / .1); }
.twn-ic { display: block; flex-shrink: 0; transition: transform .15s; }
.twn-sh__btn:hover .twn-ic, .twn-btn:hover .twn-ic, .twn-hero__btn:hover .twn-ic { transform: translateX(.25rem); }
/* In the prototype the card itself is the Tailwind "group" on Fashion, Tech, Lifestyle and Travel, so hovering
   anywhere on the card slides the arrow. Beauty cards use a button-only group, so they are left out. */
.twn-c:hover .twn-btn .twn-ic, .twn-tr-hero:hover .twn-btn .twn-ic { transform: translateX(.25rem); }

/* ---------- Shared card pieces ---------- */
.twn-c { display: flex; flex-direction: column; background: #fff; border: 1px solid rgb(235 220 197 / .7); border-radius: 1rem; box-shadow: 0 4px 20px rgb(0 0 0 / .03); overflow: hidden; transition: box-shadow .3s; }
.twn-c:hover { box-shadow: 0 8px 30px rgb(184 144 71 / .12); }
@media (min-width: 640px) { .twn-c { border-radius: 1.5rem; } }
.twn-photo { position: relative; overflow: hidden; background: #241F1C; flex-shrink: 0; }
.elementor .twn-photo>img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .7s ease-out; max-width: none; }
.twn-c:hover .twn-photo>img { transform: scale(1.05); }
.twn-shade { position: absolute; inset: 0; pointer-events: none; }
.twn-shade--soft { background: linear-gradient(to top, rgb(0 0 0 / .2), transparent, rgb(0 0 0 / .2)); }
.twn-pos { position: absolute; z-index: 20; }
.twn-pos--tl { top: 1rem; left: 1rem; }
.twn-pos--tr { top: .875rem; right: .875rem; pointer-events: none; user-select: none; }
.twn-pos--z20 { z-index: 20; }
.twn-pos--z30 { z-index: 30; }
.twn-badge { display: inline-block; background: rgb(0 0 0 / .6); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: #fff; font-size: 10px; line-height: 1rem; text-transform: uppercase; letter-spacing: .2em; padding: .25rem .75rem; border-radius: 9999px; font-weight: 500; border: 1px solid rgb(255 255 255 / .1); box-shadow: 0 1px 2px rgb(0 0 0 / .05); }
.twn-badge--lg { padding: .375rem .875rem; border-color: rgb(255 255 255 / .2); }

.twn-stamp { position: relative; display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; color: #B89047; pointer-events: none; user-select: none; }
.twn-stamp svg { display: block; width: 100%; height: 100%; animation: twn-spin 24s linear infinite; filter: drop-shadow(0 1px 1px rgb(0 0 0 / .1)); }
.twn-stamp__t { font-family: 'Poppins', sans-serif; font-size: 9px; text-transform: uppercase; letter-spacing: .22em; font-weight: 600; fill: currentColor; }
.twn-stamp__star { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: .875rem; line-height: 1.25rem; font-family: 'Abril Fatface', serif; }
.twn-stamp--lg { width: 3.5rem; height: 3.5rem; }
@media (min-width: 640px) { .twn-stamp--lg { width: 4rem; height: 4rem; } }
.twn-stamp--md { width: 3.5rem; height: 3.5rem; color: #C9A96A; }
.twn-stamp--tech { width: 3.25rem; height: 3.25rem; }
@media (min-width: 640px) { .twn-stamp--tech { width: 3.5rem; height: 3.5rem; } }
.twn-stamp--life { width: 3rem; height: 3rem; }
@media (min-width: 640px) { .twn-stamp--life { width: 3.25rem; height: 3.25rem; } }

.twn-wave { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: .875rem; fill: #fff; pointer-events: none; z-index: 10; }
@media (min-width: 640px) { .twn-wave { height: 1rem; } }
.twn-wave--mobile { height: .75rem; }
.twn-convex { display: none; position: absolute; top: 0; bottom: 0; right: 0; width: 1.5rem; height: 100%; fill: #fff; pointer-events: none; z-index: 10; }

.twn-body { display: flex; flex-direction: column; flex: 1 1 0%; }
.twn-eyebrow { display: block; font-size: 10px; line-height: 1rem; text-transform: uppercase; letter-spacing: .22em; color: #B89047; font-weight: 600; margin-bottom: .25rem; }
.twn-title { margin: 0; font-family: 'Abril Fatface', Georgia, serif; font-weight: 400; color: #1A1A1A; line-height: 1.375; transition: color .15s; overflow-wrap: anywhere; }
.twn-title a { color: inherit; text-decoration: none; }
.twn-title:hover { color: #B89047; }
.twn-excerpt { margin: 0; font-size: .75rem; line-height: 1.625; color: #615349; font-weight: 400; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.twn-row { display: flex; align-items: center; justify-content: space-between; padding-top: .625rem; border-top: 1px solid rgb(210 181 123 / .15); }
.twn-btn { display: flex; align-items: center; gap: .5rem; background: #B89047; color: #fff; border-radius: 4px; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .16em; font-weight: 500; padding: .375rem .875rem; box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: background-color .15s; text-decoration: none; }
.twn-btn:hover { background: #A37B34; }
@media (min-width: 640px) { .twn-btn { padding: .5rem 1rem; } }
.twn-wm { display: flex; align-items: center; gap: .5rem; user-select: none; }
.twn-wm__line { display: block; width: 1.5rem; height: 1px; background: rgb(210 181 123 / .4); }
.twn-wm__num { font-family: 'Abril Fatface', serif; font-style: italic; font-weight: 300; font-size: 1.875rem; line-height: 2.25rem; color: rgb(210 181 123 / .4); }
@media (min-width: 640px) { .twn-wm__num { font-size: 2.25rem; line-height: 2.5rem; } }

/* ---------- Fashion ---------- */
.twn-fa-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: stretch; }
@media (min-width: 640px) { .twn-fa-grid { gap: 1.5rem; } }
@media (min-width: 1024px) { .twn-fa-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .twn-fa-lead, .twn-fa-right { grid-column: span 6 / span 6; } }
.twn-fa-right { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
@media (min-width: 640px) { .twn-fa-right { gap: 1.25rem; } }
.twn-fa-lead { justify-content: space-between; }
.twn-fa-lead .twn-photo { width: 100%; height: 14.375rem; }
.twn-fa-lead .twn-pos--tl { top: 1rem; left: 1rem; }
.twn-fa-lead .twn-pos--tr { top: .875rem; right: .875rem; }
@media (min-width: 640px) { .twn-fa-lead .twn-photo { height: 16.25rem; } .twn-fa-lead .twn-pos--tl { top: 1.25rem; left: 1.25rem; } .twn-fa-lead .twn-pos--tr { top: 1rem; right: 1rem; } }
.twn-fa-lead .twn-body { padding: 1.25rem; justify-content: center; }
@media (min-width: 640px) { .twn-fa-lead .twn-body { padding: 1.5rem; } }
@media (min-width: 1024px) { .twn-fa-lead .twn-body { padding: 1.75rem; } }
.twn-fa-lead .twn-title { font-size: 1.25rem; line-height: 1.15; margin-bottom: .625rem; }
@media (min-width: 640px) { .twn-fa-lead .twn-title { font-size: 1.5rem; } }
@media (min-width: 1024px) { .twn-fa-lead .twn-title { font-size: 1.875rem; } }
.twn-fa-lead .twn-excerpt { margin-bottom: 1rem; -webkit-line-clamp: 3; }
@media (min-width: 640px) { .twn-fa-lead .twn-excerpt { font-size: .875rem; } }
.twn-fa-lead .twn-row { padding-top: .75rem; margin-top: .25rem; }
.twn-fa-lead .twn-btn { padding: .625rem 1.25rem; gap: .625rem; }
@media (min-width: 640px) { .twn-fa-lead .twn-btn { padding: .75rem 1.5rem; } }
.twn-fa-lead .twn-wm { gap: .625rem; }
.twn-fa-lead .twn-wm__line { width: 2.5rem; height: 1.5px; }
.twn-fa-lead .twn-wm__num { font-size: 2.25rem; line-height: 2.5rem; }
@media (min-width: 640px) { .twn-fa-lead .twn-wm__line { width: 3.5rem; } .twn-fa-lead .twn-wm__num { font-size: 3rem; line-height: 1; } }

.twn-fa-small { flex: 1 1 0%; min-height: 175px; flex-direction: column; }
.twn-fa-small .twn-photo { width: 100%; height: 11rem; min-height: 160px; }
.twn-fa-small .twn-body { padding: 1rem; justify-content: center; }
.twn-fa-small .twn-title { font-size: 1rem; margin-bottom: .375rem; line-height: 1.375; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.twn-fa-small .twn-excerpt { margin-bottom: .75rem; }
.twn-fa-small .twn-row { padding-top: .5rem; }
.twn-fa-small .twn-btn { padding: .375rem .875rem; }
.twn-fa-small .twn-wm { gap: .5rem; }
.twn-fa-small .twn-wm__line { width: 1.5rem; }
@media (min-width: 640px) {
  .twn-fa-small { min-height: 190px; flex-direction: row; }
  .twn-fa-small .twn-photo { width: 38%; height: auto; align-self: stretch; }
  .twn-fa-small .twn-body { padding: 1.25rem; }
  .twn-fa-small .twn-title { font-size: 1.125rem; }
  .twn-fa-small .twn-btn { padding: .5rem 1rem; }
  .twn-fa-small .twn-wm__line { width: 2.5rem; }
  .twn-fa-small .twn-convex { display: block; }
  .twn-fa-small .twn-wave--mobile { display: none; }
}
.twn-fa-small .twn-wm__num { font-size: 1.875rem; line-height: 2.25rem; }
@media (min-width: 640px) { .twn-fa-small .twn-wm__num { font-size: 2.25rem; line-height: 2.5rem; } }

/* ---------- Beauty ---------- */
.twn-be-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: stretch; }
@media (min-width: 640px) { .twn-be-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
@media (min-width: 1024px) { .twn-be-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.twn-be-card { position: relative; height: 430px; border-radius: 1rem; border: 1px solid rgb(210 181 123 / .4); box-shadow: 0 6px 25px rgb(0 0 0 / .06); overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 1.25rem; transition: all .5s; user-select: none; }
@media (min-width: 640px) { .twn-be-card { height: 460px; border-radius: 1.5rem; padding: 1.5rem; } }
.twn-be-card:hover { box-shadow: 0 16px 40px rgb(184 144 71 / .22); transform: translateY(-.375rem); }
.twn-be-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: #1A1A1A; }
.elementor .twn-be-bg>img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; transition: transform .7s ease-out; }
.twn-be-card:hover .twn-be-bg>img { transform: scale(1.08); }
.twn-be-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .95), rgb(0 0 0 / .55), rgb(0 0 0 / .3)); transition: background .5s; }
.twn-be-card:hover .twn-be-shade { background: linear-gradient(to top, rgb(0 0 0 / .9), rgb(0 0 0 / .45), rgb(0 0 0 / .3)); }
.twn-be-top { position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between; width: 100%; }
.twn-be-top .twn-badge { padding: .375rem .875rem; border-color: rgb(255 255 255 / .2); letter-spacing: .2em; }
.twn-be-content { position: relative; z-index: 10; width: 100%; padding-top: 1rem; }
.twn-be-line { width: 100%; height: .75rem; margin-bottom: .625rem; overflow: hidden; }
.twn-be-line svg { display: block; width: 100%; height: 100%; }
.twn-be-content .twn-eyebrow { color: #C9A96A; text-shadow: 0 1px 2px rgb(0 0 0 / .1); }
.twn-be-content .twn-title { font-size: 1.125rem; color: #fff; margin-bottom: .5rem; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; text-shadow: 0 1px 2px rgb(0 0 0 / .1); }
@media (min-width: 640px) { .twn-be-content .twn-title { font-size: 1.25rem; } }
.twn-be-content .twn-title:hover { color: #C9A96A; }
.twn-be-content .twn-excerpt { color: rgb(255 255 255 / .85); margin-bottom: .875rem; }
.twn-be-content .twn-row { border-top-color: rgb(255 255 255 / .2); padding-top: .625rem; }
.twn-be-content .twn-wm__line { background: rgb(201 169 106 / .6); }
.twn-be-content .twn-wm__num { color: rgb(201 169 106 / .6); }
@media (min-width: 640px) { .twn-be-content .twn-wm__line { width: 2.5rem; } }

/* ---------- Tech ---------- */
.twn-te { display: flex; flex-direction: column; gap: 1.25rem; }
@media (min-width: 640px) { .twn-te { gap: 1.5rem; } }
.twn-te-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: stretch; }
@media (min-width: 640px) { .twn-te-row { gap: 1.5rem; } .twn-te-row--bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .twn-te-row--top { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .twn-te-1 { grid-column: span 7 / span 7; }
  .twn-te-2 { grid-column: span 5 / span 5; }
  .twn-te-row--bottom { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.twn-te-card { justify-content: space-between; }
.twn-te-big { min-height: 350px; }
.twn-te-big .twn-photo { width: 100%; height: 11.5625rem; }
.twn-te-sm { min-height: 340px; }
.twn-te-sm .twn-photo { width: 100%; height: 8.75rem; }
@media (min-width: 640px) { .twn-te-big { min-height: 365px; } .twn-te-big .twn-photo { height: 12.8125rem; } .twn-te-sm { min-height: 355px; } .twn-te-sm .twn-photo { height: 9.375rem; } }
.twn-te-card .twn-pos--tl { top: .875rem; left: .875rem; }
.twn-te-1 .twn-pos--tl { top: 1rem; left: 1rem; }
.twn-te-1 .twn-shade { background: linear-gradient(to top, rgb(0 0 0 / .25), transparent, rgb(0 0 0 / .2)); }
.twn-te-card .twn-pos--tr { top: .875rem; right: .875rem; }
@media (min-width: 640px) { .twn-te-card .twn-pos--tr { top: 1rem; right: 1rem; } }
.twn-te-card .twn-body { padding: 1rem; justify-content: space-between; }
@media (min-width: 640px) { .twn-te-card .twn-body { padding: 1.25rem; } }
.twn-te-card .twn-row { margin-top: .75rem; padding-top: .625rem; }
.twn-te-card .twn-title { font-size: 1rem; margin-bottom: .25rem; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.twn-te-1 .twn-title { font-size: 1.125rem; margin-bottom: .375rem; }
@media (min-width: 640px) { .twn-te-1 .twn-title { font-size: 1.25rem; } .twn-te-2 .twn-title { font-size: 1.125rem; } }
.twn-te-card .twn-btn { padding: .375rem .875rem; }
.twn-te-1 .twn-btn { padding: .5rem 1rem; }
@media (min-width: 640px) { .twn-te-card .twn-btn { padding: .5rem 1rem; } .twn-te-1 .twn-btn { padding: .5rem 1.125rem; } }
.twn-te-card .twn-wm__line { width: 1.5rem; }
.twn-te-1 .twn-wm__line, .twn-te-2 .twn-wm__line { width: 2rem; }
@media (min-width: 640px) { .twn-te-card .twn-wm__line { width: 2rem; } .twn-te-1 .twn-wm__line, .twn-te-2 .twn-wm__line { width: 2.5rem; } }
.twn-te-card .twn-wm__num { font-size: 1.875rem; line-height: 2.25rem; }
@media (min-width: 640px) { .twn-te-card .twn-wm__num { font-size: 2.25rem; line-height: 2.5rem; } }

/* ---------- Lifestyle ---------- */
.twn-li { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
@media (min-width: 640px) { .twn-li { gap: 1.5rem; } }
.twn-li-row { width: 100%; flex-direction: column; }
@media (min-width: 768px) { .twn-li-row { height: 220px; flex-direction: row; } }
@media (min-width: 1024px) { .twn-li-row { height: 235px; } }
.twn-li-row .twn-photo { width: 100%; height: 12rem; }
@media (min-width: 640px) { .twn-li-row .twn-photo { height: 13rem; } }
@media (min-width: 768px) { .twn-li-row .twn-photo { width: 38%; height: 100%; } }
@media (min-width: 1024px) { .twn-li-row .twn-photo { width: 34%; } }
.twn-li-row .twn-shade { background: linear-gradient(to top, rgb(0 0 0 / .25), transparent, rgb(0 0 0 / .2)); }
.twn-li-row .twn-pos--tl { top: 1rem; left: 1rem; }
.twn-li-row .twn-pos--tr { z-index: 5; top: .875rem; right: .875rem; }
@media (min-width: 640px) { .twn-li-row .twn-pos--tr { top: 1rem; right: 1rem; } }
@media (min-width: 768px) { .twn-li-row .twn-pos--tr { right: 2.75rem; } }
@media (min-width: 1024px) { .twn-li-row .twn-pos--tr { right: 3rem; } }
.twn-li-row .twn-convex { width: 2rem; z-index: 20; }
@media (min-width: 768px) { .twn-li-row .twn-convex { display: block; } .twn-li-row .twn-wave--md { display: none; } }
.twn-li-row .twn-body { padding: 1rem; justify-content: space-between; }
@media (min-width: 640px) { .twn-li-row .twn-body { padding: 1.25rem; } }
@media (min-width: 1024px) { .twn-li-row .twn-body { padding: 1.5rem; } }
.twn-li-row .twn-title { font-size: 1rem; margin-bottom: .375rem; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
@media (min-width: 640px) { .twn-li-row .twn-title { font-size: 1.125rem; } .twn-li-row .twn-excerpt { font-size: .875rem; } .twn-li-row .twn-btn { padding: .5rem 1.125rem; } }
@media (min-width: 1024px) { .twn-li-row .twn-title { font-size: 1.25rem; } }
.twn-li-row .twn-row { margin-top: .5rem; padding-top: .625rem; }
.twn-li-row .twn-btn { padding: .5rem 1rem; }
.twn-li-row .twn-wm__line { width: 2rem; }
@media (min-width: 640px) { .twn-li-row .twn-wm__line { width: 3rem; } }
.twn-li-row .twn-wm__num { font-size: 1.875rem; line-height: 2.25rem; }
@media (min-width: 640px) { .twn-li-row .twn-wm__num { font-size: 2.25rem; line-height: 2.5rem; } }

/* ---------- Travel ---------- */
.twn-tr { display: flex; flex-direction: column; gap: 1.25rem; width: 100%; }
@media (min-width: 640px) { .twn-tr { gap: 1.5rem; } }
.twn-tr-hero { position: relative; width: 100%; height: 360px; border-radius: 1rem; overflow: hidden; border: 1px solid rgb(210 181 123 / .4); box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1); transition: all .5s; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; user-select: none; }
.twn-tr-hero:hover { box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); }
@media (min-width: 640px) { .twn-tr-hero { height: 420px; border-radius: 1.5rem; padding: 2rem; } }
@media (min-width: 1024px) { .twn-tr-hero { height: 440px; padding: 2.5rem; } }
.twn-tr-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: #1A1A1A; }
.elementor .twn-tr-bg>img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; transition: transform .7s ease-out; }
.twn-tr-hero:hover .twn-tr-bg>img { transform: scale(1.05); }
.twn-tr-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .85), rgb(0 0 0 / .45), rgb(0 0 0 / .25)); }
.twn-tr-hero .twn-pos--tl { top: 1.25rem; left: 1.25rem; }
.twn-tr-hero .twn-pos--tr { top: 1rem; right: 1rem; }
@media (min-width: 640px) { .twn-tr-hero .twn-pos--tr { top: 1.25rem; right: 1.25rem; } }
.twn-tr-content { position: relative; z-index: 10; max-width: 48rem; }
.twn-tr-content .twn-eyebrow { color: #C9A96A; }
.twn-tr-content .twn-title { font-size: 1.5rem; line-height: 1.25; color: #fff; font-weight: 500; margin-bottom: .5rem; text-shadow: 0 1px 2px rgb(0 0 0 / .1); }
@media (min-width: 640px) { .twn-tr-content .twn-title { font-size: 1.875rem; } }
@media (min-width: 1024px) { .twn-tr-content .twn-title { font-size: 2.25rem; } }
.twn-tr-content .twn-title:hover { color: #C9A96A; }
.twn-tr-content .twn-excerpt { color: rgb(255 255 255 / .9); margin-bottom: 1rem; max-width: 42rem; -webkit-line-clamp: 2; }
@media (min-width: 640px) { .twn-tr-content .twn-excerpt { font-size: .875rem; -webkit-line-clamp: 3; } }
.twn-tr-content .twn-row { border-top-color: rgb(255 255 255 / .2); padding-top: .75rem; }
.twn-tr-content .twn-btn { padding: .5rem 1rem; }
@media (min-width: 640px) { .twn-tr-content .twn-btn { padding: .625rem 1.25rem; } }
.twn-tr-content .twn-wm__line { background: rgb(255 255 255 / .4); width: 2rem; }
.twn-tr-content .twn-wm__num { color: rgb(255 255 255 / .5); }
@media (min-width: 640px) { .twn-tr-content .twn-wm__line { width: 3rem; } }
.twn-tr-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; width: 100%; align-items: stretch; }
@media (min-width: 640px) { .twn-tr-pair { gap: 1.5rem; } }
@media (min-width: 768px) { .twn-tr-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.twn-tr-card { justify-content: space-between; }
.twn-tr-card .twn-photo { width: 100%; height: 13.75rem; }
@media (min-width: 640px) { .twn-tr-card .twn-photo { height: 15.625rem; } }
.twn-tr-card .twn-body { padding: 1rem; justify-content: space-between; }
@media (min-width: 640px) { .twn-tr-card .twn-body { padding: 1.25rem; } }
@media (min-width: 1024px) { .twn-tr-card .twn-body { padding: 1.5rem; } }
.twn-tr-card .twn-title { font-size: 1.125rem; margin-bottom: .375rem; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
@media (min-width: 640px) { .twn-tr-card .twn-title { font-size: 1.25rem; } .twn-tr-card .twn-excerpt { font-size: .875rem; -webkit-line-clamp: 3; } .twn-tr-card .twn-btn { padding: .5rem 1.125rem; } }
.twn-tr-card .twn-row { margin-top: .75rem; padding-top: .625rem; }
.twn-tr-card .twn-btn { padding: .5rem 1rem; }
.twn-tr-card .twn-wm__line { width: 2rem; }
@media (min-width: 640px) { .twn-tr-card .twn-wm__line { width: 2.5rem; } }
.twn-tr-card .twn-wm__num { font-size: 1.875rem; line-height: 2.25rem; }
@media (min-width: 640px) { .twn-tr-card .twn-wm__num { font-size: 2.25rem; line-height: 2.5rem; } }

/* ---------- Newsletter ---------- */
.twn-nl { width: 100%; max-width: 80rem; margin: 0 auto; padding: 3rem 1rem; }
@media (min-width: 640px) { .twn-nl { padding: 4rem 1.5rem; } }
@media (min-width: 1024px) { .twn-nl { padding-left: 2rem; padding-right: 2rem; } }
.twn-nl__card { position: relative; overflow: hidden; border-radius: 1rem; background: #FAF6F0; border: 1px solid #EBDCC5; box-shadow: 0 4px 30px rgb(0 0 0 / .03); display: flex; flex-direction: column; align-items: stretch; min-height: 380px; }
@media (min-width: 640px) { .twn-nl__card { border-radius: 1.5rem; } }
@media (min-width: 1024px) { .twn-nl__card { border-radius: 2rem; flex-direction: row; min-height: 420px; } }
.twn-nl__photo { position: relative; overflow: hidden; width: 100%; height: 16rem; min-height: 260px; background: #241F1C; flex-shrink: 0; }
@media (min-width: 1024px) { .twn-nl__photo { width: 32%; height: auto; } }
@media (min-width: 1280px) { .twn-nl__photo { width: 29%; } }
.elementor .twn-nl__photo>img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; max-width: none; }
.twn-nl__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, rgb(0 0 0 / .2), transparent, transparent); }
.twn-nl__curve { display: none; position: absolute; top: 0; bottom: 0; right: 0; width: 3.5rem; height: 100%; fill: #FAF6F0; pointer-events: none; z-index: 10; }
@media (min-width: 1024px) { .twn-nl__curve { display: block; } }
@media (min-width: 1280px) { .twn-nl__curve { width: 4rem; } }
.twn-nl__wave { position: absolute; bottom: 0; left: 0; right: 0; width: 100%; height: 1rem; fill: #FAF6F0; pointer-events: none; z-index: 10; }
@media (min-width: 1024px) { .twn-nl__wave { display: none; } }
.twn-nl__main { position: relative; z-index: 10; flex: 1 1 0%; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 2.5rem 1.5rem; }
@media (min-width: 640px) { .twn-nl__main { padding-left: 2.5rem; padding-right: 2.5rem; } }
@media (min-width: 1024px) { .twn-nl__main { padding-top: 3.5rem; padding-bottom: 3.5rem; } }
.twn-nl__eyebrow { display: flex; align-items: center; gap: .75rem; margin-bottom: .625rem; }
.twn-nl__eyebrow-line { display: block; width: 2rem; height: 1px; background: rgb(210 181 123 / .6); }
@media (min-width: 640px) { .twn-nl__eyebrow-line { width: 3rem; } }
.twn-nl__eyebrow-text { font-size: 10px; line-height: 1rem; text-transform: uppercase; letter-spacing: .25em; color: #B89047; font-weight: 600; user-select: none; }
@media (min-width: 640px) { .twn-nl__eyebrow-text { font-size: .75rem; } }
.twn-nl__title { margin: 0 0 .625rem; font-family: 'Abril Fatface', Georgia, serif; font-weight: 400; font-size: 1.875rem; line-height: 1.25; letter-spacing: -.025em; color: #1A1A1A; }
@media (min-width: 640px) { .twn-nl__title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .twn-nl__title { font-size: 42px; } }
.twn-nl__sub { margin: 0 auto 1.5rem; max-width: 32rem; font-size: .75rem; line-height: 1.625; color: #615349; font-weight: 400; }
@media (min-width: 640px) { .twn-nl__sub { font-size: .875rem; } }
.twn-nl__form { width: 100%; max-width: 36rem; margin: 0 auto; }
.twn-nl__field { display: flex; align-items: center; border-radius: 9999px; border: 1px solid rgb(210 181 123 / .7); background: #fff; padding: .375rem .375rem .375rem 1rem; box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: all .15s; }
@media (min-width: 640px) { .twn-nl__field { padding: .5rem .5rem .5rem 1.5rem; } }
.twn-nl__field:focus-within { border-color: #B89047; box-shadow: 0 0 0 2px rgb(184 144 71 / .2); }
.twn-nl__input { width: 100%; background: transparent; color: #1A1A1A; font-size: .75rem; line-height: 1rem; outline: none; padding-right: .75rem; font-weight: 400; border: 0; }
@media (min-width: 640px) { .twn-nl__input { font-size: .875rem; line-height: 1.25rem; } }
.twn-nl__input::placeholder { color: #9C8E80; }
.twn-nl__btn { background: #C19D5A; color: #fff; padding: .625rem 1.5rem; border-radius: 9999px; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .18em; font-weight: 600; flex-shrink: 0; box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: background-color .15s; cursor: pointer; border: 0; }
@media (min-width: 640px) { .twn-nl__btn { padding: .75rem 2rem; } }
.twn-nl__btn:hover { background: #A88442; }
.twn-nl__btn:active { transform: scale(.98); }
.twn-nl__error { margin-top: .75rem; font-size: .75rem; color: #a9442f; }
.twn-nl__trusts { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; margin-top: 1rem; font-size: 11px; line-height: 1rem; color: #615349; user-select: none; }
@media (min-width: 640px) { .twn-nl__trusts { gap: 1.5rem; font-size: .75rem; } }
.twn-nl__trust { display: flex; align-items: center; gap: .5rem; }
.twn-nl__trust-ic { display: flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; border-radius: 9999px; background: rgb(184 144 71 / .1); color: #B89047; }
.twn-nl__trust-sep { display: none; width: 1px; height: 1rem; background: rgb(210 181 123 / .4); }
@media (min-width: 640px) { .twn-nl__trust-sep { display: block; } }
.twn-nl__done { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; width: 100%; max-width: 32rem; background: #fff; border: 1px solid rgb(184 144 71 / .6); border-radius: 9999px; padding: 1rem 1.5rem; text-align: center; box-shadow: 0 1px 3px rgb(0 0 0 / .1); color: #B89047; }
@media (min-width: 640px) { .twn-nl__done { padding: 1.25rem 2rem; } }
.twn-nl__done[hidden] { display: none; }
.twn-nl__done p { margin: 0; font-size: .75rem; line-height: 1.625; color: #1A1A1A; font-weight: 500; }
@media (min-width: 640px) { .twn-nl__done p { font-size: .875rem; } }
.twn-nl__side { display: none; position: relative; width: 24%; flex-shrink: 0; overflow: hidden; pointer-events: none; user-select: none; }
@media (min-width: 1280px) { .twn-nl__side { display: block; } }
.twn-nl__halo { position: absolute; border-radius: 9999px; background: #F3ECE0; }
.twn-nl__halo--1 { top: -3rem; right: -3rem; width: 16rem; height: 16rem; opacity: .8; }
.twn-nl__halo--2 { bottom: -4rem; right: -2.5rem; width: 18rem; height: 18rem; opacity: .6; }
.twn-nl__polaroid { position: absolute; top: 2.5rem; right: 2.5rem; width: 9rem; height: 11rem; background: #fff; padding: .625rem .625rem 1.75rem; border-radius: 2px; box-shadow: 0 10px 25px rgb(0 0 0 / .08); border: 1px solid rgb(235 220 197 / .7); transform: rotate(-6deg); }
.twn-nl__tape { position: absolute; top: -.625rem; left: 50%; transform: translateX(-50%) rotate(-2deg); width: 2.5rem; height: 1rem; background: rgb(224 211 193 / .85); box-shadow: 0 1px 2px rgb(0 0 0 / .05); }
.twn-nl__polaroid img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(25%) sepia(15%); }
.twn-nl__branch { position: absolute; bottom: 0; right: .25rem; width: 8rem; height: 11rem; color: #C9A96A; opacity: .85; }

/* ---------- Hero ---------- */
.twn-hero { position: relative; width: 100%; overflow: hidden; background: #FAF7F2; color: #1A1A1A; border-bottom: 1px solid rgb(210 181 123 / .3); user-select: none; }
.twn-hero__bg { display: none; position: absolute; top: 0; bottom: 0; right: 0; left: calc(50vw - 2.5rem); z-index: 0; overflow: hidden; pointer-events: none; }
@media (min-width: 1024px) { .twn-hero__bg { display: block; } }
@media (min-width: 1280px) { .twn-hero__bg { left: calc(50vw - 3.5rem); } }
@media (min-width: 1536px) { .twn-hero__bg { left: calc(50vw - 4rem); } }
.twn-hero__bgimg { position: absolute; inset: 0; opacity: 0; transform: scale(1.05); transition: opacity .7s ease-in-out; pointer-events: none; }
.twn-hero__bgimg.is-active { opacity: 1; transform: scale(1); }
.elementor .twn-hero__bgimg>img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; max-width: none; }
.twn-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / .5), rgb(0 0 0 / .1), rgb(0 0 0 / .3)); }
.twn-hero__shade--mob { background: linear-gradient(to top, rgb(0 0 0 / .5), transparent, rgb(0 0 0 / .25)); }
.twn-hero__curve { position: absolute; top: 0; bottom: 0; left: -1px; width: calc(7rem + 1px); z-index: 10; pointer-events: none; }
@media (min-width: 1280px) { .twn-hero__curve { width: calc(9rem + 1px); } }
.twn-hero__curve svg { display: block; width: 100%; height: 100%; fill: #FAF7F2; }
.twn-hero__leaf { display: none; position: absolute; bottom: -2.5rem; left: 0; width: 20rem; height: 20rem; opacity: .2; color: #3B2F2F; pointer-events: none; z-index: 0; }
@media (min-width: 1024px) { .twn-hero__leaf { display: block; } }
.twn-hero__leaf svg { display: block; width: 100%; height: 100%; }
.twn-hero__wrap { position: relative; z-index: 10; width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .twn-hero__wrap { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .twn-hero__wrap { padding: 0 2rem; } }
.twn-hero__inner { position: relative; width: 100%; min-height: 640px; display: flex; flex-direction: column; }
@media (min-width: 1024px) { .twn-hero__inner { flex-direction: row; height: 80vh; min-height: 700px; max-height: 860px; } }
.twn-hero__left { position: relative; z-index: 20; width: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 1.5rem 1rem 1.5rem 0; }
@media (min-width: 640px) { .twn-hero__left { padding: 2rem 1.5rem 2rem 0; } }
@media (min-width: 1024px) { .twn-hero__left { width: 50%; padding: 3rem 2.5rem 3rem 0; } }
@media (min-width: 1280px) { .twn-hero__left { width: 52%; } }
.twn-hero__railwrap { width: 100%; }
.twn-hero__rail { display: flex; align-items: center; gap: .75rem; overflow-x: auto; padding: 1rem 1.5rem 1rem .5rem; scrollbar-width: none; }
.twn-hero__rail::-webkit-scrollbar { display: none; }
@media (min-width: 640px) { .twn-hero__rail { gap: 1rem; } }
@media (min-width: 1024px) { .twn-hero__rail { gap: 1.125rem; } }
.twn-hero__cat { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; padding: .25rem 0; text-align: left; cursor: pointer; transition: all .2s; }
@media (min-width: 640px) { .twn-hero__cat { gap: .625rem; } }
.twn-hero__thumb { --twn-ring: #B89047; position: relative; display: block; overflow: hidden; width: 2.5rem; height: 3.5rem; border-radius: 9999px 9999px 2px 2px; opacity: .75; border: 1px solid rgb(210 181 123 / .5); box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: all .3s; }
@media (min-width: 640px) { .twn-hero__thumb { width: 3rem; height: 4rem; } }
@media (min-width: 1024px) { .twn-hero__thumb { width: 3.25rem; height: 4.5rem; } }
.twn-hero__cat:hover .twn-hero__thumb { opacity: 1; border-color: #B89047; }
.twn-hero__cat.is-active .twn-hero__thumb { opacity: 1; border-color: transparent; box-shadow: 0 0 0 2px #FAF7F2, 0 0 0 4px var(--twn-ring), 0 4px 6px -1px rgb(0 0 0 / .1); }
.elementor .twn-hero__thumb>img { display: block; width: 100%; height: 100%; object-fit: cover; max-width: none; transition: transform .5s; }
.twn-hero__cat:hover .twn-hero__thumb>img { transform: scale(1.08); }
.twn-hero__meta { display: flex; flex-direction: column; }
.twn-hero__num { font-size: 11px; line-height: 1rem; font-weight: 700; letter-spacing: .05em; color: #1A1A1A; transition: color .15s; }
.twn-hero__name { font-size: 10px; line-height: 1rem; font-weight: 500; letter-spacing: .025em; color: #7A6B5D; transition: color .15s; }
@media (min-width: 640px) { .twn-hero__num { font-size: .75rem; } .twn-hero__name { font-size: 11px; } }
.twn-hero__cat:hover .twn-hero__num { color: #B89047; }
.twn-hero__cat:hover .twn-hero__name { color: #1A1A1A; }
.twn-hero__cat.is-active .twn-hero__num { color: #B89047; }
.twn-hero__cat.is-active .twn-hero__name { color: #1A1A1A; font-weight: 600; }
.twn-hero__body { margin: auto 0; padding: 1rem 0; max-width: 36rem; }
@media (min-width: 640px) { .twn-hero__body { padding: 1.5rem 0; } }
.twn-hero__slide { display: none; }
.twn-hero__slide.is-active { display: block; }
.twn-hero__h1 { margin: 0 0 1rem; font-family: 'Abril Fatface', Georgia, serif; font-weight: 400; font-size: 1.875rem; line-height: 1.12; letter-spacing: -.025em; color: #1A1A1A; filter: drop-shadow(0 1px 1px rgb(0 0 0 / .05)); }
@media (min-width: 640px) { .twn-hero__h1 { font-size: 2.25rem; } }
@media (min-width: 1024px) { .twn-hero__h1 { font-size: 44px; } }
@media (min-width: 1280px) { .twn-hero__h1 { font-size: 50px; } }
.twn-hero__gold { color: #B89047; }
.twn-hero__gold--block { display: inline-block; margin-right: .5rem; }
.twn-hero__line { display: block; }
.twn-hero__excerpt { margin: 0 0 1.5rem; max-width: 32rem; font-size: .75rem; line-height: 1.625; color: #5C4F44; font-weight: 400; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
@media (min-width: 640px) { .twn-hero__excerpt { font-size: .875rem; -webkit-line-clamp: 4; } }
.twn-hero__btn { display: inline-flex; align-items: center; gap: .75rem; padding: .75rem 1.5rem; background: #B89047; color: #fff; font-size: .75rem; line-height: 1rem; text-transform: uppercase; letter-spacing: .2em; font-weight: 500; border-radius: 4px; box-shadow: 0 1px 2px rgb(0 0 0 / .05); transition: all .2s; text-decoration: none; }
.twn-hero__btn:hover { background: #A37B34; box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1); }
.twn-hero__btn:active { transform: scale(.99); }
.twn-hero__right { position: relative; width: 100%; display: flex; flex-direction: column; justify-content: space-between; }
@media (min-width: 1024px) { .twn-hero__right { width: 50%; } }
@media (min-width: 1280px) { .twn-hero__right { width: 48%; } }
.twn-hero__mob { position: relative; width: 100%; height: 450px; overflow: hidden; border-radius: 1rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); margin: 1rem 0 .5rem; }
@media (min-width: 640px) { .twn-hero__mob { height: 540px; } }
@media (min-width: 1024px) { .twn-hero__mob { display: none; } }
.twn-hero__tag { position: absolute; top: 1rem; right: 0; z-index: 20; pointer-events: none; text-align: right; }
@media (min-width: 640px) { .twn-hero__tag { top: 1.5rem; } }
@media (min-width: 1024px) { .twn-hero__tag { top: 2rem; } }
.twn-hero__tagline { display: none; font-family: 'Alex Brush', cursive; font-size: 1.5rem; line-height: 2rem; color: #fff; font-weight: 400; filter: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06)); }
.twn-hero__tagline.is-active { display: block; }
@media (min-width: 640px) { .twn-hero__tagline { font-size: 1.875rem; line-height: 2.25rem; } }
@media (min-width: 1024px) { .twn-hero__tagline { font-size: 2.25rem; line-height: 2.5rem; } }
.twn-hero__tag-line { width: 4rem; height: 1.5px; margin: .25rem 0 0 auto; border-radius: 9999px; background: linear-gradient(to right, transparent, #E0BD7D, #B89047); filter: drop-shadow(0 1px 1px rgb(0 0 0 / .05)); }
@media (min-width: 640px) { .twn-hero__tag-line { width: 5rem; } }
.twn-hero__ctrl { position: absolute; bottom: 1rem; right: 0; z-index: 30; display: flex; align-items: center; gap: 1rem; background: rgb(0 0 0 / .35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); padding: .625rem 1rem; border-radius: 9999px; border: 1px solid rgb(255 255 255 / .2); box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); }
@media (min-width: 640px) { .twn-hero__ctrl { bottom: 1.5rem; gap: 1.5rem; padding: .75rem 1.25rem; } }
@media (min-width: 1024px) { .twn-hero__ctrl { bottom: 2.5rem; } }
.twn-hero__count { display: flex; align-items: center; gap: .5rem; font-size: .75rem; line-height: 1rem; font-weight: 600; color: #fff; text-shadow: 0 1px 2px rgb(0 0 0 / .2); }
.twn-hero__track { position: relative; width: 3rem; height: 1.5px; background: rgb(255 255 255 / .4); border-radius: 9999px; overflow: hidden; }
@media (min-width: 640px) { .twn-hero__track { width: 4rem; } }
.twn-hero__bar { position: absolute; top: 0; left: 0; bottom: 0; background: #B89047; transition: width .3s; }
.twn-hero__arrows { display: flex; align-items: center; gap: .5rem; }
.twn-hero__arrow { display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 9999px; background: #fff; color: #1A1A1A; box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1); border: 1px solid rgb(210 181 123 / .3); cursor: pointer; transition: all .2s; }
@media (min-width: 640px) { .twn-hero__arrow { width: 2.25rem; height: 2.25rem; } }
.twn-hero__arrow:hover { background: #B89047; color: #fff; }
.twn-hero__arrow:active { transform: scale(.95); }

/* The widget host must not clip the full-bleed hero photo. */
.elementor-widget-twn-home-hero > .elementor-widget-container { overflow: visible; }
