/* ============================================================
   HavenLink - Partner page ("Light Editorial")
   Requires editorial.css (tokens, primitives, nav/footer re-skin)
   loaded before this sheet. All partner-specific classes are pt-*.

   Contents:
     1. Opening
     2. Why partner (ledger grid)
     3. Application section + margin rail
     4. Form (switch cards, chapters, fields)
     5. Stitched seam
     6. Closing ink band
     7. Motion + responsive
   ============================================================ */

/* ==================== 1. Opening ====================
   The hero rides the shared .ed-hero shell (editorial.css section 9) so it
   sits at the same scale as the homepage and the /adopt/* heroes. What is
   partner-specific is the quilt: a block of unequal patches joined by dashed
   terracotta stitch seams, cycling the partner roster. It is this page's own
   metaphor made visible - "stronger woven together", the same stitch the
   eyebrow rule sews in and the application form runs down its seam.

   Every patch carries a mark. The block is inset from the text column's right
   edge rather than bled off the viewport, so the whole quilt reads at once.
   ==================================================== */

.pt-hero {
  /* the warm centre of gravity the sibling heroes use (.rf-hero, .fc-hero) */
  background-image: radial-gradient(
    40rem 28rem at 68% 46%,
    rgba(180, 85, 31, 0.05),
    transparent 70%
  );
}

/* Warp: ink hairlines across the whole hero, masked off the left so the
   headline keeps clean paper. Abstract line is exactly what the shared 105deg
   hero mask is for - unlike artwork, it reads as atmosphere at partial alpha. */
.pt-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    to bottom,
    rgba(20, 33, 61, 0.055) 0 1px,
    transparent 1px 3.25rem
  );
  -webkit-mask-image: linear-gradient(105deg, transparent 8%, rgba(0, 0, 0, 0.3) 34%, #000 60%);
  mask-image: linear-gradient(105deg, transparent 8%, rgba(0, 0, 0, 0.3) 34%, #000 60%);
}

/* the stitched eyebrow rule survives the move onto .ed-hero-eyebrow, whose
   stock ::after is a plain 1px hairline. Scoped so it cannot leak elsewhere. */
.pt-hero .ed-hero-eyebrow::after {
  height: 2px;
  background: repeating-linear-gradient(
    to right,
    rgba(180, 85, 31, 0.7) 0 8px,
    transparent 8px 15px
  );
  animation: pt-stitch-in 1.15s steps(8, end) 0.45s both;
}

@keyframes pt-stitch-in {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0 0 0); }
}

/* stock is 16ch / 38rem, which at --text-hero would run under the quilt */
.pt-hero .ed-hero-title {
  max-width: min(12ch, 40rem);
}

.pt-hero .ed-hero-standfirst {
  max-width: min(34rem, 100%);
}

/* ---- The quilt ---- */

.pt-quilt {
  --cell: clamp(5rem, min(10.5vh, 7.5vw), 9.25rem);
  --gap: clamp(0.4rem, 0.9vh, 0.75rem);
  /* how far the block sits in from the text column's right edge. The gutter
     term lands it on that edge; the clamp walks it further into the page so
     it reads as placed rather than pushed against the frame. */
  --pt-inset: calc(var(--gutter) + clamp(1rem, 3vw, 4rem));
  --stitch-ink: rgba(20, 33, 61, 0.3);
  position: absolute;
  top: 50%;
  right: var(--pt-inset);
  transform: translateY(-50%);
  width: calc(4 * var(--cell) + 3 * var(--gap));
  pointer-events: none;
}

.pt-quilt-block {
  position: relative;
}

.pt-quilt-grid {
  display: grid;
  grid-template-columns: repeat(4, var(--cell));
  grid-auto-rows: var(--cell);
  gap: var(--gap);
  /* Two 2x2 blocks set on the diagonal among eight singles. Every patch is
     square on purpose: a mark centred in an oblong strands itself in dead
     space, and the roster is full of circular civic seals. No cell is left
     blank - every patch in the block carries a partner. */
  grid-template-areas:
    "m1 m1  m2 m3"
    "m1 m1  m4 m5"
    "m6 m7  m8 m8"
    "m9 m10 m8 m8";
}

/* the block's own left and top edge - the patches only ever paint their right
   and bottom, so nothing doubles up along an interior seam */
.pt-quilt-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(to bottom, var(--stitch-ink) 0 6px, transparent 6px 13px),
    repeating-linear-gradient(to right, var(--stitch-ink) 0 6px, transparent 6px 13px);
  background-size: 2px 100%, 100% 2px;
  background-position: 0 0, 0 0;
  background-repeat: no-repeat;
}

.pt-patch {
  --ground: var(--paper);
  position: relative;
  background: var(--ground);
  overflow: hidden;
}

.pt-patch--alt {
  --ground: var(--paper-dim);
}

/* Seams. Two layers of the same dashed idiom the eyebrow and the form's
   .pt-seam use: ::after is the resting ink stitch, ::before an accent copy
   that flashes while the patch turns - the stitch catching the light. */
.pt-patch::before,
.pt-patch::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(to bottom, var(--stitch) 0 6px, transparent 6px 13px),
    repeating-linear-gradient(to right, var(--stitch) 0 6px, transparent 6px 13px);
  background-size: 2px 100%, 100% 2px;
  background-position: 100% 0, 0 100%;
  background-repeat: no-repeat;
}

.pt-patch::after {
  --stitch: var(--stitch-ink);
}

.pt-patch::before {
  --stitch: var(--terracotta);
  z-index: 1;
  opacity: 0;
  transition: opacity 0.55s var(--ease-out);
}

.pt-patch.is-turning::before {
  opacity: 0.9;
  transition-duration: 0.18s;
}

/* The turn: a fade and a hair of scale. Deliberately not a translate - the
   old drift bobbed every card on its own loop and read as jitter. */
.pt-patch-face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: clamp(0.7rem, 1.4vw, 1.15rem);
  /* matches the patch so a mark's multiply blend keeps an opaque backdrop
     even while the face carries a transform and isolates itself */
  background: var(--ground);
  transition: opacity 0.46s var(--ease-out), transform 0.46s var(--ease-out);
}

/* the 2x2s get their own breathing room so a large mark never crowds a seam */
.pt-patch--big .pt-patch-face {
  padding: clamp(1.1rem, 2.2vw, 1.9rem);
}

.pt-patch.is-out .pt-patch-face {
  opacity: 0;
  transform: scale(0.98);
}

/* Marks show in full colour, every patch, always. */
.pt-patch-face img {
  /* --nat-w / --nat-h are written from naturalWidth/naturalHeight, so a mark
     is never blown up past 1:1. The roster spans 28px to 1445px. */
  max-width: min(100%, var(--nat-w, 100%));
  max-height: min(100%, var(--nat-h, 100%));
  object-fit: contain;
  /* a third of the roster has no alpha channel - multiply drops those white
     plates into the ground instead of stamping boxes on the paper */
  mix-blend-mode: multiply;
}

/* fallback when a logo file is missing, empty, or too slow to arrive */
.pt-patch-name {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 430;
  font-size: clamp(0.8rem, 1vw, 0.95rem);
  line-height: 1.3;
  text-align: center;
  color: var(--ink);
  opacity: 0.72;
  text-wrap: balance;
}

/* ---- Shuttle: one pass of the needle down the big patch's seam ---- */

.pt-quilt-shuttle {
  position: absolute;
  top: 0;
  left: calc(2 * var(--cell) + 1.5 * var(--gap));
  width: 2px;
  height: 5rem;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, var(--terracotta), transparent);
  opacity: 0.7;
  animation: pt-shuttle 9s linear infinite;
}

@keyframes pt-shuttle {
  from { transform: translateY(-6rem); }
  to { transform: translateY(calc(4 * var(--cell) + 3 * var(--gap) + 6rem)); }
}

/* ---- Foot: caption, running index, the whole roster ---- */

.pt-quilt-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 1.1rem;
  margin: 1.15rem 0 0;
  pointer-events: auto;
}

.pt-quilt-caption {
  flex: 1 1 100%;
  font-size: var(--text-meta);
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--muted);
}

.pt-quilt-index {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
  color: var(--terracotta);
}

.pt-quilt-link {
  font-size: var(--text-meta);
}

/* the patches are built by partner.js - without it the caption and the link
   to the full roster still stand, which the old opening panel did not */
html:not(.js) .pt-quilt-block {
  display: none;
}

html:not(.js) .pt-quilt {
  position: static;
  transform: none;
  width: auto;
  margin-top: clamp(2rem, 5vh, 3rem);
}

/* ==================== 2. Why partner (ledger grid) ==================== */

.pt-why {
  padding-block: clamp(3rem, 6vh, 4.5rem) clamp(4.5rem, 9vh, 7rem);
}

.pt-why-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pt-why-item {
  padding: 0.5rem clamp(1.5rem, 3vw, 3rem);
}

.pt-why-item:first-child {
  padding-left: 0;
}

.pt-why-item + .pt-why-item {
  border-left: var(--hairline);
}

.pt-why-ord {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(2.25rem, 3.5vw, 3.25rem);
  font-weight: 380;
  line-height: 1;
  color: var(--terracotta);
  margin-bottom: 1.25rem;
}

.pt-why-name {
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 450;
  line-height: 1.2;
  font-variation-settings: "opsz" 40;
  margin-bottom: 0.9rem;
}

.pt-why-body {
  color: var(--muted);
  font-size: 0.9688rem;
  line-height: 1.7;
  max-width: 26rem;
}

/* ==================== 3. Application section + rail ==================== */

.pt-apply {
  padding-block: clamp(4.5rem, 9vh, 7rem);
  background: var(--paper-dim);
}

.pt-apply-title {
  font-size: var(--text-display);
  font-weight: 420;
  line-height: 1.08;
  font-variation-settings: "opsz" 60;
  max-width: 16ch;
  text-wrap: balance;
}

.pt-apply-title em {
  font-style: italic;
  color: var(--terracotta);
}

.pt-apply-sub {
  font-size: var(--text-lede);
  color: var(--muted);
  font-weight: 420;
  margin-top: 1.1rem;
  max-width: 36rem;
  margin-bottom: clamp(2.5rem, 6vh, 4rem);
}

.pt-apply-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(260px, 3fr);
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: start;
}

/* Margin rail: the old sidebar, as quiet editorial margin notes */
.pt-rail {
  position: sticky;
  top: calc(var(--hm-nav-h) + 2rem);
}

.pt-note {
  padding: 1.5rem 0;
  border-top: var(--hairline);
}

.pt-note:last-child {
  border-bottom: var(--hairline);
}

.pt-note[id] {
  scroll-margin-top: calc(var(--hm-nav-h) + 1rem);
}

.pt-note ul {
  list-style: none;
  margin: 0.9rem 0 0;
  padding: 0;
}

.pt-note li {
  position: relative;
  padding: 0.3rem 0 0.3rem 1.5rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--muted);
}

.pt-note li::before {
  content: "/";
  position: absolute;
  left: 0;
  color: var(--terracotta);
}

.pt-note p {
  margin: 0.9rem 0 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--muted);
}

.pt-note .hm-textlink {
  margin-top: 1rem;
  font-size: 0.875rem;
}

/* ==================== 4. Form ==================== */

.pt-form {
  --pt-pad: clamp(1.6rem, 3.5vw, 3rem);
  position: relative;
  background: var(--paper);
  border: var(--hairline);
  padding: var(--pt-pad);
  padding-left: calc(var(--pt-pad) + 2.5rem);
}

/* ---- Variant switch: two identity cards over hidden radios ---- */

.pt-switchset {
  border: none;
  margin: 0 0 0.5rem;
  padding: 0;
  min-inline-size: 0;
}

.pt-switchset legend {
  padding: 0;
  margin-bottom: 0.65rem;
}

.pt-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.pt-switch-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 1.15rem 1.3rem;
  border: var(--hairline-strong);
  cursor: pointer;
  transition: background-color 0.35s var(--ease-out), color 0.35s var(--ease-out),
    border-color 0.35s var(--ease-out);
}

.pt-switch-card input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.pt-switch-kicker {
  font-size: 0.75rem;
  font-weight: 560;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--muted);
  transition: color 0.35s var(--ease-out);
}

.pt-switch-name {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  font-weight: 460;
  font-variation-settings: "opsz" 30;
  line-height: 1.2;
}

.pt-switch-ord {
  position: absolute;
  top: 1rem;
  right: 1.15rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.85rem;
  color: rgba(20, 33, 61, 0.35);
  transition: color 0.35s var(--ease-out);
}

.pt-switch-card.is-checked,
.pt-switch-card:has(input:checked) {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
}

.pt-switch-card.is-checked .pt-switch-kicker,
.pt-switch-card:has(input:checked) .pt-switch-kicker,
.pt-switch-card.is-checked .pt-switch-ord,
.pt-switch-card:has(input:checked) .pt-switch-ord {
  color: #e4b79a;
}

.pt-switch-card:focus-within {
  outline: 2px solid var(--terracotta);
  outline-offset: 3px;
}

/* ---- Variant fieldsets: visibility keyed to data-variant ---- */

.pt-only {
  border: none;
  margin: 0;
  padding: 0;
  min-inline-size: 0;
}

.pt-form[data-variant="agency"] .pt-org-only,
.pt-form[data-variant="organization"] .pt-agency-only {
  display: none;
}

/* ---- Chapter fieldsets ---- */

.pt-chapter {
  border: none;
  margin: 2.4rem 0 0;
  padding: 0;
  min-inline-size: 0;
}

.pt-legend {
  display: flex;
  align-items: baseline;
  gap: 0.85rem;
  width: 100%;
  padding-bottom: 0.85rem;
  border-bottom: var(--hairline);
  margin-bottom: 1.7rem;
}

.pt-legend-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1rem;
  color: var(--terracotta);
}

.pt-legend-name {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 1.8vw, 1.5rem);
  font-weight: 460;
  font-variation-settings: "opsz" 30;
  color: var(--ink);
}

/* ---- Fields ---- */

.pt-field {
  margin-bottom: 1.6rem;
}

.pt-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1.75rem;
}

.pt-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 560;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  margin-bottom: 0.45rem;
}

.pt-label .pt-req {
  color: var(--terracotta);
}

.pt-field input[type="text"],
.pt-field input[type="email"],
.pt-field input[type="tel"],
.pt-field input[type="url"],
.pt-field input[type="number"] {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: var(--hairline-strong);
  border-radius: 0;
  padding: 0.55rem 0;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--ink);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.pt-field input:focus {
  outline: none;
  border-bottom-color: var(--terracotta);
  box-shadow: 0 1px 0 var(--terracotta);
}

.pt-field select,
.pt-field textarea {
  width: 100%;
  background: var(--paper);
  border: var(--hairline-strong);
  border-radius: 0;
  padding: 0.75rem 0.9rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--ink);
  transition: border-color 0.3s ease;
}

.pt-field select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.4rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 L6 6.5 L11 1.5' fill='none' stroke='%2314213d' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9rem center;
}

.pt-field textarea {
  min-height: 7.5rem;
  resize: vertical;
}

.pt-field select:focus,
.pt-field textarea:focus {
  outline: none;
  border-color: var(--terracotta);
}

.pt-field input::placeholder,
.pt-field textarea::placeholder {
  color: rgba(74, 84, 104, 0.55);
}

.pt-hint {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.8125rem;
  color: rgba(74, 84, 104, 0.75);
}

/* consent checkbox */
.pt-agree {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin: 0.4rem 0 0;
}

.pt-agree input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  flex: none;
  accent-color: var(--terracotta);
}

.pt-agree span {
  font-size: 0.9063rem;
  line-height: 1.6;
  color: var(--muted);
}

.pt-agree .privacy-policy-link {
  color: var(--ink);
  font-size: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pt-agree .privacy-policy-link:hover {
  color: var(--terracotta);
}

/* submit row */
.pt-form-actions {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  flex-wrap: wrap;
  margin-top: 2.4rem;
}

.pt-form-actions .hm-btn {
  border: none;
}

/* Styled by ID: script.js writes inline colors on it and account.js can
   rewrite its className, so the class is not a reliable hook. */
#formMessage {
  margin-top: 1.6rem;
  padding: 1rem 1.25rem;
  border: var(--hairline-strong);
  font-size: 0.9375rem;
  line-height: 1.6;
}

/* ==================== 5. Stitched seam ==================== */

.pt-seam {
  position: absolute;
  left: calc(var(--pt-pad) + 0.55rem);
  top: var(--pt-pad);
  bottom: var(--pt-pad);
  width: 2px;
}

/* no-JS / base state: a quiet dashed seam */
.pt-seam-line {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    to bottom,
    rgba(180, 85, 31, 0.35) 0 9px,
    transparent 9px 17px
  );
}

/* solid fill sews downward as required fields complete */
.pt-seam-fill {
  position: absolute;
  inset: 0;
  background: var(--terracotta);
  transform-origin: top;
  transform: scaleY(var(--pt-progress, 0));
  transition: transform 0.6s var(--ease-out);
}

/* cross-stitch tick per required field (positioned by partner.js) */
.pt-seam-tick {
  position: absolute;
  left: 50%;
  width: 13px;
  height: 2px;
  background: rgba(20, 33, 61, 0.22);
  transform: translate(-50%, -50%) rotate(-32deg);
  transition: background-color 0.3s ease, width 0.3s ease;
}

.pt-seam-tick.is-done {
  background: var(--terracotta);
  width: 18px;
}

/* "7 of 12" riding the fill edge, set vertically to fit the gutter */
.pt-seam-count {
  position: absolute;
  top: calc(var(--pt-progress, 0) * 100%);
  left: 9px;
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  color: var(--terracotta);
  white-space: nowrap;
  transition: top 0.6s var(--ease-out);
}

/* ==================== 6. Closing ink band ==================== */

.pt-close {
  padding-block: clamp(5.5rem, 12vh, 9.5rem) clamp(4.5rem, 9vh, 7rem);
}

.pt-close-line {
  font-family: var(--font-display);
  font-size: clamp(2.125rem, 5vw, 4.25rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 100;
  color: var(--paper);
  max-width: 17ch;
  text-wrap: balance;
  margin-bottom: clamp(2rem, 5vh, 3.25rem);
}

.pt-close-line em {
  font-style: italic;
  color: #e4b79a;
}

.pt-close-actions {
  display: flex;
  align-items: center;
  gap: 2.25rem;
  flex-wrap: wrap;
}

/* ==================== 7. Motion + responsive ==================== */

@media (prefers-reduced-motion: reduce) {
  .pt-seam-fill,
  .pt-seam-tick,
  .pt-seam-count {
    transition: none;
  }

  .pt-hero .ed-hero-eyebrow::after {
    animation: none;
  }

  .pt-patch-face,
  .pt-patch::before {
    transition: none;
  }

  .pt-quilt-shuttle {
    display: none;
  }
}

@media (max-width: 1024px) {
  .pt-apply-grid {
    grid-template-columns: 1fr;
  }

  .pt-rail {
    position: static;
  }

  /* the quilt drops out of the hero's right margin and into the flow. The
     layout is rebuilt in JS rather than hidden in CSS, so patches that are
     no longer on screen stop cycling and stop fetching. */
  .pt-quilt {
    --cell: clamp(4.5rem, 15vw, 7rem);
    position: static;
    transform: none;
    right: auto;
    width: calc(4 * var(--cell) + 3 * var(--gap));
    max-width: 100%;
    margin-top: clamp(2.25rem, 5vh, 3.5rem);
  }

  .pt-quilt-grid {
    grid-template-areas:
      "m1 m1 m2 m3"
      "m1 m1 m4 m5";
  }

  .pt-quilt-foot {
    width: 100%;
    max-width: 34rem;
  }

  .pt-hero::before {
    opacity: 0.6;
  }
}

@media (max-width: 900px) {
  .pt-why-grid {
    grid-template-columns: 1fr;
  }

  .pt-why-item {
    padding: 1.75rem 0;
  }

  .pt-why-item:first-child {
    padding-top: 0;
  }

  .pt-why-item + .pt-why-item {
    border-left: none;
    border-top: var(--hairline);
  }
}

@media (max-width: 640px) {
  .pt-row {
    grid-template-columns: 1fr;
  }

  .pt-switch {
    grid-template-columns: 1fr;
  }

  .pt-quilt {
    --cell: clamp(4.25rem, 21vw, 5.75rem);
    width: calc(3 * var(--cell) + 2 * var(--gap));
  }

  .pt-quilt-grid {
    grid-template-columns: repeat(3, var(--cell));
    grid-template-areas:
      "m1 m1 m2"
      "m1 m1 m3";
  }

  .pt-quilt-shuttle {
    display: none;
  }
}

@media (max-width: 560px) {
  .pt-form {
    padding-left: calc(var(--pt-pad) + 1.5rem);
  }

  .pt-seam {
    left: calc(var(--pt-pad) + 0.15rem);
  }

  .pt-seam-count {
    display: none;
  }
}
