        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

        :root {
          --cream: #f5f0e8;
          --cream-dark: #ede5d5;
          --warm-brown: #6b4f3a;
          --dark-brown: #3a2a1e;
          --forest-green: #3d5a3e;
          --forest-green-light: #4e7050;
          --text-body: #5a4535;
          --text-light: #8a7060;
          --section-divider: #c8b89a;
          --error-color: #9a3a2a;
          --font-serif: 'Cormorant Garamond', Georgia, serif;
          --font-body: 'EB Garamond', Georgia, serif;
        }

        html { scroll-behavior: smooth; }
        body {
          font-family: var(--font-body);
          background-color: var(--cream);
          color: var(--text-body);
          overflow-x: hidden;
        }

        /* ====== PAGE ====== */
        .page {
          margin-top: 61px;
          padding: 56px 24px 80px;
          max-width: 860px;
          margin-left: auto;
          margin-right: auto;
        }

        /* ====== TITLE BLOCK ====== */
        .title-block {
          text-align: center;
          margin-bottom: 40px;
          animation: fadeUp 0.9s ease both;
        }
        .title-block h1 {
          font-family: var(--font-serif);
          font-size: clamp(2.4rem, 6vw, 3.6rem);
          font-weight: 400;
          color: var(--dark-brown);
          letter-spacing: 0.03em;
          margin-bottom: 0.2em;
        }

        .divider-dots {
          display: flex; align-items: center; justify-content: center;
          gap: 6px; margin: 14px 0 24px;
        }
        .divider-dots span {
          width: 5px; height: 5px; border-radius: 50%;
          background: var(--section-divider); display: block;
        }
        .divider-dots span:nth-child(2) { width: 4px; height: 4px; opacity: 0.6; }

        .divider-dots::before,
        .divider-dots::after {
          content: '';
          flex: 1;
          display: block;
          height: 1px;
          background: var(--section-divider);
          min-width: 100px;
        }

        .title-desc {
          font-family: var(--font-body);
          font-size: clamp(1rem, 2vw, 1.15rem);
          color: var(--text-body);
          line-height: 1.8;
          max-width: 520px;
          margin: 0 auto;
        }

        @keyframes fadeUp {
          from { opacity: 0; transform: translateY(20px); }
          to   { opacity: 1; transform: translateY(0); }
        }

        /* ====== HERO IMAGE ====== */
        .hero-image {
          width: 100%;
          border-radius: 14px;
          overflow: hidden;
          aspect-ratio: 16/5;
          margin-bottom: 56px;
          box-shadow: 0 6px 32px rgba(58,42,30,0.1);
          animation: fadeUp 0.9s ease 0.1s both;
        }
        .hero-image img {
          width: 100%; height: 100%;
          object-fit: cover;
          object-position: center 40%;
          display: block;
          filter: sepia(0.15) brightness(0.96) saturate(0.9);
          transition: transform 0.6s ease;
        }
        .hero-image:hover img { transform: scale(1.02); }

        /* ====== CONTENT GRID ====== */
        /* Left: form. Right: decorative image (desktop only) */
        .content-grid {
          display: grid;
          grid-template-columns: 1fr 260px;
          gap: 56px;
          align-items: start;
          animation: fadeUp 0.9s ease 0.2s both;
        }

        /* ====== FORM SECTION ====== */
        .form-section h2 {
          font-family: var(--font-serif);
          font-size: clamp(1.6rem, 3.5vw, 2.2rem);
          font-weight: 400;
          color: var(--dark-brown);
          letter-spacing: 0.03em;
          margin-bottom: 14px;
        }

        .form-intro {
          font-family: var(--font-body);
          font-size: clamp(0.95rem, 1.5vw, 1.05rem);
          color: var(--text-body);
          line-height: 1.8;
          margin-bottom: 28px;
        }

        /* Fields */
        .field-group {
          display: flex;
          flex-direction: column;
          gap: 7px;
          margin-bottom: 18px;
        }

        .field-label {
          font-family: var(--font-body);
          font-size: 1rem;
          color: var(--text-body);
          letter-spacing: 0.02em;
        }

        .field-input,
        .field-textarea {
          width: 100%;
          padding: 13px 16px;
          background: rgba(255,255,255,0.7);
          border: 1.5px solid var(--section-divider);
          border-radius: 8px;
          font-family: var(--font-body);
          font-size: 1rem;
          color: var(--dark-brown);
          outline: none;
          transition: border-color 0.25s, box-shadow 0.25s, background 0.2s;
          appearance: none;
        }
        .field-input:focus,
        .field-textarea:focus {
          border-color: var(--warm-brown);
          background: #fff;
          box-shadow: 0 0 0 3px rgba(107,79,58,0.1);
        }
        .field-input.has-error,
        .field-textarea.has-error {
          border-color: var(--error-color);
          box-shadow: 0 0 0 3px rgba(154,58,42,0.1);
        }

        .field-textarea {
          resize: vertical;
          min-height: 120px;
          line-height: 1.6;
        }

        .field-error-msg {
          font-family: var(--font-serif);
          font-style: italic;
          font-size: 0.82rem;
          color: var(--error-color);
          display: none;
        }
        .field-group.show-error .field-error-msg { display: block; }

        /* Submit */
        .submit-btn {
          padding: 14px 40px;
          background: var(--forest-green);
          color: #fff;
          font-family: var(--font-body);
          font-size: 1.05rem;
          letter-spacing: 0.08em;
          border: none;
          border-radius: 100px;
          cursor: pointer;
          transition: background 0.3s, transform 0.2s, box-shadow 0.3s;
          box-shadow: 0 4px 20px rgba(61,90,62,0.25);
          position: relative;
          overflow: hidden;
          margin-top: 6px;
          display: inline-flex;
          align-items: center;
          gap: 8px;
        }
        .submit-btn:hover {
          background: var(--forest-green-light);
          transform: translateY(-2px);
          box-shadow: 0 8px 28px rgba(61,90,62,0.3);
        }
        .submit-btn:active { transform: translateY(0); }
        .submit-btn:disabled { opacity: 0.65; cursor: not-allowed; transform: none; }

        .btn-label { transition: opacity 0.2s; }
        .btn-spinner {
          display: none;
          width: 18px; height: 18px;
          border: 2px solid rgba(255,255,255,0.35);
          border-top-color: #fff;
          border-radius: 50%;
          animation: spin 0.7s linear infinite;
        }
        .submit-btn.loading .btn-label { opacity: 0; }
        .submit-btn.loading .btn-spinner { display: block; }

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

        /* Direct email line */
        .direct-email {
          margin-top: 28px;
          padding-top: 20px;
          border-top: 1px solid rgba(200,184,154,0.5);
        }
        .direct-email p {
          font-family: var(--font-body);
          font-size: 1rem;
          color: var(--text-body);
          line-height: 1.7;
        }
        .direct-email p em { font-style: italic; }
        .direct-email a {
          display: block;
          margin-top: 6px;
          font-family: var(--font-body);
          font-size: 1.05rem;
          color: var(--forest-green);
          text-decoration: none;
          letter-spacing: 0.02em;
          transition: color 0.2s;
        }
        .direct-email a:hover {
          color: var(--forest-green-light);
          text-decoration: underline;
          text-underline-offset: 3px;
        }

        /* ====== SUCCESS STATE ====== */
        .success-panel {
          display: none;
          text-align: center;
          padding: 48px 24px;
          animation: fadeUp 0.6s ease both;
        }
        .success-panel.visible { display: block; }
        .success-icon { font-size: 2.6rem; margin-bottom: 14px; }
        .success-panel h2 {
          font-family: var(--font-serif);
          font-size: 1.8rem; font-weight: 400;
          color: var(--dark-brown); margin-bottom: 10px;
        }
        .success-panel p {
          font-family: var(--font-serif);
          font-style: italic;
          font-size: 1.05rem;
          color: var(--text-light); line-height: 1.75;
        }

        /* ====== SIDEBAR IMAGE ====== */
        .sidebar-image {
          position: sticky;
          top: 88px;
          border-radius: 12px;
          overflow: hidden;
          aspect-ratio: 2/3;
          box-shadow: 0 8px 32px rgba(58,42,30,0.12);
        }
        .sidebar-image img {
          width: 100%; height: 100%;
          object-fit: cover;
          object-position: center top;
          display: block;
          filter: sepia(0.12) brightness(0.94) saturate(0.88);
          transition: transform 0.5s ease;
        }
        .sidebar-image:hover img { transform: scale(1.03); }

        /* ====== MOBILE FIRST ====== */
        @media (max-width: 767px) {
          .page { padding: 40px 16px 64px; }

          .hero-image { aspect-ratio: 16/6; margin-bottom: 40px; }

          .content-grid {
            grid-template-columns: 1fr;
            gap: 0;
          }

          /* Hide sidebar image on mobile */
          .sidebar-image { display: none; }

          .title-block { margin-bottom: 28px; }
          .divider-diamond .line { width: 60px; }
        }

        @media (min-width: 768px) and (max-width: 1023px) {
          .content-grid { grid-template-columns: 1fr 200px; gap: 36px; }
        }

        @media (min-width: 1024px) {
          .page { padding: 64px 48px 80px; }
        }