/**
 * Rosevine Technology Services — brand stylesheet
 * Editorial / boutique-consulting design system.
 * Google Fonts are loaded via <link rel="stylesheet"> in BaseLayout.tsx
 * (preconnect + link is faster than CSS @import).
 */

:root {
  --rts-plum: #5b0e2d;
  --rts-plum-deep: #3a0820;
  --rts-plum-bright: #7a1740;
  --rts-copper: #c6743c;
  --rts-copper-bright: #d98a52;
  --rts-ivory: #f5f1ea;
  --rts-paper: #fbf8f2;
  --rts-graphite: #1a1a1f;
  --rts-slate: #6b7280;
  --rts-rule: rgba(26, 26, 31, 0.12);
  --rts-rule-light: rgba(26, 26, 31, 0.08);
  --rts-rule-ivory: rgba(245, 241, 234, 0.16);

  --rts-display: 'Space Grotesk', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --rts-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --rts-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* AI Applied campaign */
  --rts-ai-grad: linear-gradient(135deg, #3a0820 0%, #1a1a1f 58%, #0d0d10 100%);
}

/* ── Base ───────────────────────────────────────────────────── */

body.rts {
  font-family: var(--rts-body);
  background: var(--rts-ivory);
  color: var(--rts-graphite);
  font-feature-settings: 'ss01', 'cv11';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.rts main {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

body.rts ::selection {
  background: var(--rts-plum);
  color: var(--rts-ivory);
}

body.rts a:focus-visible,
body.rts button:focus-visible,
body.rts input:focus-visible,
body.rts textarea:focus-visible,
body.rts select:focus-visible {
  outline: 2px solid var(--rts-copper);
  outline-offset: 3px;
}

/* ── Mobile overflow guard ──────────────────────────────────── */
/* Phones were getting a stray horizontal scrollbar: large display
   type and the 12-column grids could push a track or an unbreakable
   word a few pixels past the viewport edge, so a vertical swipe would
   sometimes pan sideways. `overflow-x: clip` removes that sideways
   scroll without creating a scroll container — so the sticky header
   keeps working (plain `overflow: hidden` would break it). */
html,
body.rts {
  overflow-x: clip;
  max-width: 100%;
}

/* Media never widens the layout past its column. */
body.rts img,
body.rts svg {
  max-width: 100%;
  height: auto;
}

/* The editorial layout is built on 12-track grids, tagged `.rts-grid`.
   Their grid children default to `min-width: auto`, which refuses to
   shrink a track below its content's intrinsic width — a long word or a
   large display heading then blows the track out past the viewport.
   Letting the children shrink lets the text wrap instead, which stops
   the overflow at its source. */
body.rts .rts-grid > * {
  min-width: 0;
}

@media (max-width: 767px) {
  /* On a phone the 12 columns collapse to zero (minmax(0, 1fr)), but the
     11 *column gaps* between the tracks are a fixed size that can't shrink
     — at up to 2.5rem each they add up to more than the viewport, so the
     grid stays wider than the screen and you get the sideways scroll.
     Every child already spans the full width and stacks on mobile, so the
     horizontal gap buys nothing here: zero it out. The row-gap (vertical
     rhythm between the stacked rows) is left untouched. */
  body.rts .rts-grid {
    column-gap: 0 !important;
  }
}

/* ── Typography ─────────────────────────────────────────────── */

.rts-display {
  font-family: var(--rts-display);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.96;
  color: var(--rts-graphite);
}

.rts-display-italic {
  font-family: var(--rts-display);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.025em;
}

.rts-mono {
  font-family: var(--rts-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.72rem;
  font-weight: 500;
}

.rts-eyebrow {
  font-family: var(--rts-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rts-copper);
}

.rts-eyebrow-dark {
  color: var(--rts-plum);
}

.rts-lead {
  font-family: var(--rts-body);
  font-weight: 400;
  font-size: clamp(1.25rem, 1.6vw, 1.625rem);
  line-height: 1.45;
  color: var(--rts-graphite);
  letter-spacing: -0.011em;
}

.rts-body {
  font-family: var(--rts-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--rts-graphite);
}

.rts-body-muted {
  color: var(--rts-slate);
}

/* ── Layout / hairlines ─────────────────────────────────────── */

.rts-container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

@media (min-width: 768px) {
  .rts-container {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

.rts-section {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

@media (min-width: 768px) {
  .rts-section {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }
}

.rts-rule {
  border: 0;
  border-top: 1px solid var(--rts-rule);
  margin: 0;
}

.rts-rule-ivory {
  border-top-color: var(--rts-rule-ivory);
}

.rts-divider {
  border-top: 1px solid var(--rts-rule);
}

/* ── Buttons / links ────────────────────────────────────────── */

.rts-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 1.5rem;
  font-family: var(--rts-body);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-decoration: none;
  border-radius: 999px;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
  border: 1px solid transparent;
  cursor: pointer;
}

.rts-btn-primary {
  background: var(--rts-plum);
  color: var(--rts-ivory);
}

.rts-btn-primary:hover {
  background: var(--rts-plum-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 30px -16px rgba(91, 14, 45, 0.6);
}

.rts-btn-ghost {
  background: transparent;
  color: var(--rts-graphite);
  border-color: var(--rts-rule);
}

.rts-btn-ghost:hover {
  border-color: var(--rts-graphite);
}

.rts-btn-on-plum {
  background: var(--rts-ivory);
  color: var(--rts-plum);
}

.rts-btn-on-plum:hover {
  background: var(--rts-copper);
  color: var(--rts-ivory);
}

.rts-link {
  color: var(--rts-plum);
  text-decoration: none;
  background-image: linear-gradient(var(--rts-copper), var(--rts-copper));
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  transition: background-size 0.25s ease;
}

.rts-link:hover {
  background-size: 100% 2px;
}

.rts-arrow {
  display: inline-block;
  transform: translateY(1px);
  transition: transform 0.2s ease;
}

a:hover .rts-arrow,
.rts-btn:hover .rts-arrow {
  transform: translate(2px, 1px);
}

/* ── Form ───────────────────────────────────────────────────── */

.rts-input,
.rts-textarea,
.rts-select {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rts-rule);
  padding: 0.875rem 0;
  font-family: var(--rts-body);
  font-size: 1rem;
  color: var(--rts-graphite);
  transition: border-color 0.2s ease;
}

.rts-input:focus,
.rts-textarea:focus,
.rts-select:focus {
  outline: none;
  border-bottom-color: var(--rts-plum);
}

.rts-textarea {
  min-height: 7rem;
  resize: vertical;
}

.rts-label {
  font-family: var(--rts-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rts-slate);
}

/* ── Header / footer ────────────────────────────────────────── */

.rts-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(245, 241, 234, 0.86);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--rts-rule-light);
}

.rts-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Vertical only: a `padding` shorthand here zeroed .rts-container's side
     gutters, pinning the logo and CTA to the screen edges. */
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.rts-nav-link {
  font-family: var(--rts-body);
  font-size: 0.92rem;
  color: var(--rts-graphite);
  text-decoration: none;
  position: relative;
  padding: 0.25rem 0;
}

.rts-nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: var(--rts-copper);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.rts-nav-link:hover::after,
.rts-nav-link[aria-current='page']::after {
  transform: scaleX(1);
}

/* Primary nav: five top-level entries, one disclosure menu, one CTA. The
   AI Applied campaign pages live in the menu so the bar stays uncluttered. */

.rts-nav {
  gap: 1.75rem;
  align-items: center;
}

.rts-nav-list {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.rts-nav-menu {
  position: relative;
}

.rts-nav-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: none;
  border: 0;
  cursor: pointer;
  line-height: inherit;
}

.rts-nav-caret {
  width: 0.4rem;
  height: 0.4rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.2s ease;
}

.rts-nav-trigger[aria-expanded='true'] .rts-nav-caret {
  transform: translateY(1px) rotate(-135deg);
}

/* Underline the menu while it's open, or while one of its pages is current. */
.rts-nav-menu[data-active] > .rts-nav-trigger::after,
.rts-nav-trigger[aria-expanded='true']::after {
  transform: scaleX(1);
}

/* The panel ships with [hidden]; the menu script removes it to open the panel.
   padding-top bridges the gap under the trigger so a hover doesn't drop on the
   way down to the panel. */
.rts-nav-panel {
  position: absolute;
  top: 100%;
  left: -1rem;
  padding-top: 0.85rem;
  z-index: 50;
}

/* No-script fallback only. Once the menu script runs it marks the menu
   data-rts-nav-ready and handles hover itself; a CSS reveal on top of that would
   hold the panel open after a click or Escape had closed it. */
@media (hover: hover) and (pointer: fine) {
  .rts-nav-menu:not([data-rts-nav-ready]):hover > .rts-nav-panel[hidden] {
    display: block;
  }

  .rts-nav-menu:not([data-rts-nav-ready]):hover .rts-nav-caret {
    transform: translateY(1px) rotate(-135deg);
  }
}

.rts-nav-panel-list {
  list-style: none;
  margin: 0;
  padding: 0.5rem;
  width: 21rem;
  background: var(--rts-paper);
  border: 1px solid var(--rts-rule);
  border-radius: 14px;
  box-shadow: 0 24px 48px -24px rgba(26, 26, 31, 0.35);
}

.rts-nav-panel-link {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.15s ease;
}

.rts-nav-panel-link:hover,
.rts-nav-panel-link:focus-visible {
  background: var(--rts-ivory);
}

.rts-nav-panel-link[aria-current='page'] {
  box-shadow: inset 2px 0 0 var(--rts-copper);
}

.rts-nav-panel-label {
  font-family: var(--rts-display);
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--rts-graphite);
}

.rts-nav-panel-link[aria-current='page'] .rts-nav-panel-label {
  color: var(--rts-plum);
}

.rts-nav-panel-blurb {
  font-family: var(--rts-body);
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--rts-slate);
}

/* Below desktop the short booking CTA and the menu toggle share the bar. */
.rts-header-compact {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.rts-header-compact .rts-header-compact-cta {
  padding: 0.5rem 0.95rem;
  font-size: 0.82rem;
}

/* Logo, CTA and toggle need about 310px. On the narrowest phones the CTA
   waits in the menu instead of squeezing the logo. */
@media (max-width: 359px) {
  .rts-header-compact .rts-header-compact-cta {
    display: none;
  }
}

@media (min-width: 1024px) {
  .rts-header-compact {
    display: none;
  }
}

.rts-mobile-nav {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.rts-mobile-nav .rts-nav-link {
  font-size: 1.05rem;
  align-self: flex-start;
}

.rts-mobile-group {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  padding: 0.85rem 0 0.85rem 1rem;
  border-left: 1px solid var(--rts-rule);
}

.rts-mobile-group-label {
  color: var(--rts-copper);
}

.rts-footer {
  background: var(--rts-graphite);
  color: var(--rts-ivory);
  margin-top: 0;
}

.rts-footer a {
  color: var(--rts-ivory);
  text-decoration: none;
  opacity: 0.78;
  transition: opacity 0.2s ease;
}

.rts-footer a:hover {
  opacity: 1;
}

/* ── Logo wall ──────────────────────────────────────────────── */

.rts-logo-mark {
  font-family: var(--rts-display);
  font-weight: 500;
  font-size: 1.5rem;
  letter-spacing: -0.02em;
  color: var(--rts-graphite);
  opacity: 0.7;
  transition: opacity 0.2s ease;
}

.rts-logo-mark:hover {
  opacity: 1;
}

/* ── Numbered list (services) ───────────────────────────────── */

.rts-numbered {
  counter-reset: rts;
  list-style: none;
  padding: 0;
  margin: 0;
}

.rts-numbered > li {
  counter-increment: rts;
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 1.25rem;
  padding: 1.25rem 0;
  border-top: 1px solid var(--rts-rule);
}

.rts-numbered > li:last-child {
  border-bottom: 1px solid var(--rts-rule);
}

.rts-numbered > li::before {
  content: counter(rts, decimal-leading-zero);
  font-family: var(--rts-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: var(--rts-copper);
  padding-top: 0.4rem;
}

/* ── Pill ───────────────────────────────────────────────────── */

.rts-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.8rem;
  border: 1px solid var(--rts-rule);
  border-radius: 999px;
  font-family: var(--rts-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rts-graphite);
  background: var(--rts-paper);
}

.rts-pill-copper {
  border-color: var(--rts-copper);
  color: var(--rts-copper);
}

.rts-pill-plum {
  background: var(--rts-plum);
  border-color: var(--rts-plum);
  color: var(--rts-ivory);
}

/* ── AI Applied campaign ────────────────────────────────────── */

.rts-ai-ground {
  background: var(--rts-ai-grad);
  color: var(--rts-ivory);
}

.rts-ai-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--rts-copper);
  border-radius: 999px;
  font-family: var(--rts-mono);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rts-copper-bright);
  background: transparent;
}

.rts-ai-badge::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--rts-copper-bright);
  box-shadow: 0 0 0 3px rgba(217, 138, 82, 0.25);
}

/* Sub-page tiles under the /ai hero: one column on phones, 1x3 from md up. */
.rts-ai-tiles {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

@media (min-width: 768px) {
  .rts-ai-tiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.rts-ai-tiles > li {
  display: flex;
}

.rts-ai-tile {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  padding: 1.75rem;
  border: 1px solid var(--rts-rule);
  border-top: 3px solid var(--rts-copper);
  border-radius: 14px;
  background: var(--rts-paper);
  color: var(--rts-graphite);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.rts-ai-tile:hover,
.rts-ai-tile:focus-visible {
  transform: translateY(-3px);
  border-color: var(--rts-copper);
  box-shadow: 0 14px 30px -18px rgba(58, 8, 32, 0.45);
}

.rts-ai-tile-title {
  font-size: clamp(1.4rem, 2.2vw, 1.75rem);
  color: var(--rts-plum);
}

.rts-ai-tile-blurb {
  color: var(--rts-slate);
  flex: 1;
}

.rts-ai-tile-cta {
  align-self: flex-start;
  margin-top: 0.5rem;
}

/* Numbered list on a dark ground: ivory hairlines instead of graphite. */
.rts-numbered-ivory > li {
  border-top-color: var(--rts-rule-ivory);
}

.rts-numbered-ivory > li:last-child {
  border-bottom-color: var(--rts-rule-ivory);
}

/* ── Intelligent Automation ─────────────────────────────────── */

/* Vertical use cases, built on native <details> so the panels open without
   JavaScript and stay keyboard- and screen-reader-navigable. Healthcare is
   marked `featured`: it renders open and carries the copper spine. */

.rts-accordion {
  border-top: 1px solid var(--rts-rule);
}

.rts-accordion-item {
  border-bottom: 1px solid var(--rts-rule);
  /* A fragment link (the hero's "Where they work" list, or a shared deep link)
     scrolls the panel to the very top of the viewport — where the sticky header
     covers its first ~74px. That hid the label and the toggle, and a click at
     the summary's centre landed on a nav link instead. Clear the header's
     height plus some air. */
  scroll-margin-top: 6rem;
}

.rts-accordion-item[open] {
  background: var(--rts-paper);
}

.rts-accordion-item-featured {
  background: var(--rts-paper);
  /* An inset shadow rather than a border-left, so the spine does not shift
     the summary row's padding out of alignment with the other panels. */
  box-shadow: inset 3px 0 0 0 var(--rts-copper);
}

.rts-accordion-summary {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem 1.25rem;
  cursor: pointer;
  list-style: none;
  -webkit-tap-highlight-color: transparent;
}

/* Safari draws its own disclosure triangle unless this is hidden. */
.rts-accordion-summary::-webkit-details-marker {
  display: none;
}

body.rts summary:focus-visible {
  outline: 2px solid var(--rts-copper);
  outline-offset: -2px;
}

.rts-accordion-icon {
  flex: none;
  display: inline-flex;
  color: var(--rts-plum);
}

.rts-accordion-number {
  flex: none;
  color: var(--rts-copper);
}

.rts-accordion-title {
  min-width: 0;
  font-family: var(--rts-display);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.05;
  font-size: clamp(1.35rem, 3vw, 2.125rem);
  color: var(--rts-graphite);
  transition: color 0.2s ease;
}

.rts-accordion-summary:hover .rts-accordion-title {
  color: var(--rts-plum);
}

.rts-accordion-marker {
  margin-left: auto;
  flex: none;
  width: 2.125rem;
  height: 2.125rem;
  border: 1px solid var(--rts-rule);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--rts-plum);
  transition: transform 0.25s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rts-accordion-marker::before {
  content: '+';
  font-family: var(--rts-mono);
  font-size: 1.05rem;
  line-height: 1;
}

/* Rotating the + 45deg turns it into a ×, so open/closed reads at a glance. */
.rts-accordion-item[open] .rts-accordion-marker {
  background: var(--rts-plum);
  border-color: var(--rts-plum);
  color: var(--rts-ivory);
  transform: rotate(45deg);
}

.rts-accordion-panel {
  padding: 0 1.25rem 2.5rem;
}

@media (max-width: 767px) {
  .rts-accordion-summary {
    gap: 0.75rem;
    padding: 1.25rem 0.85rem;
  }

  .rts-accordion-panel {
    padding: 0 0.85rem 2rem;
  }

  /* Icon plus title plus marker is already three things competing for a
     narrow row — the index number is the one that buys the least. */
  .rts-accordion-number {
    display: none;
  }
}

/* Hairline task list — the scannable form of a one-paragraph vertical. */

.rts-task-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rts-task-list > li {
  position: relative;
  padding: 0.9rem 0 0.9rem 1.75rem;
  border-top: 1px solid var(--rts-rule);
}

.rts-task-list > li:last-child {
  border-bottom: 1px solid var(--rts-rule);
}

.rts-task-list > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1.65rem;
  width: 0.7rem;
  height: 1px;
  background: var(--rts-copper);
}

/* ── Discovery booking page ─────────────────────────────────── */

/* #schedule and #prepare are in-page targets: land the section's top edge just
   under the sticky header (~74px) instead of behind it. */
.rts-discovery-anchor {
  scroll-margin-top: 4.75rem;
}

.rts-discovery-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
}

.rts-calendly {
  position: relative;
  background: var(--rts-ivory);
  border: 1px solid var(--rts-rule);
  border-radius: 18px;
  overflow: hidden;
}

/* Under the widget: shows while Calendly loads, and stays if a blocker stops
   it. Top-aligned so it never collides with Calendly's centred spinner. */
.rts-calendly-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  padding: 3rem 1.5rem;
  text-align: center;
}

/* The iframe paints over the fallback once it loads. Until then the widget is
   an empty layer on top, so it lets clicks through to the fallback link; the
   iframe takes them back. Calendly recommends a 700px frame; on a phone the
   month view stacks above the times, so it needs more room. */
.rts-calendly .calendly-inline-widget {
  position: relative;
  z-index: 1;
  height: 720px;
  pointer-events: none;
}

.rts-calendly .calendly-inline-widget iframe {
  pointer-events: auto;
}

@media (max-width: 767px) {
  .rts-calendly .calendly-inline-widget {
    height: 1040px;
  }
}

/* ── Animations ─────────────────────────────────────────────── */

@keyframes rts-fade-up {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.rts-fade-up {
  animation: rts-fade-up 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

