* {
      box-sizing: border-box;
    }
    
    body {
      font-family: 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
      margin: 0;
      padding: 0;
      background-color: #f5f5f5;
      color: #333;
      font-size: 18px;
      line-height: 1.6;
    }
    
    header {
      background-color: #c10000;
      color: white;
      padding: 12px 16px;
      text-align: center;
      position: sticky;
      top: 0;
      z-index: 100;
      box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }
    
    .logo {
      font-weight: bold;
      font-size: 17px;
      line-height: 1.3;
    }
    
    .mobile-break {
      display: none;
    }
    
    @media (max-width: 480px) {
      .mobile-break {
        display: block;
      }
    }
    
    main {
      padding: 16px;
      max-width: 100%;
      margin: 0;
      background-color: white;
      min-height: calc(100vh - 120px);
    }
    
    .progress-bar {
      text-align: center;
      margin: 16px 0;
      padding: 8px 12px;
      background-color: #f9f9f9;
      border-radius: 8px;
      border: 1px solid #ddd;
      font-size: 18px;
      line-height: 1.2;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
    }
    
    .progress-info {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    
    .progress-header {
      display: flex;
      align-items: center;
      gap: 8px;
    }
    
    .current-step {
      font-size: 18px;
      font-weight: bold;
      color: #c10000;
    }
    
    .step-title {
      font-size: 18px;
      color: #333;
      font-weight: bold;
    }
    
    .progress-dots {
      display: flex;
      justify-content: center;
      gap: 4px;
    }
    
    .progress-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background-color: #e0e0e0;
      display: inline-block;
      margin: 0 2px;
    }
    
    .progress-dot.active {
      background-color: #c10000;
    }
    
    .progress-dot.completed {
      background-color: #4CAF50;
    }
    
    .store-selection {
      background-color: #f9f9f9;
      border: 1px solid #ddd;
      border-radius: 8px;
      padding: 12px;
      margin-bottom: 16px;
    }
    
    .store-selection p {
      margin: 0 0 8px 0;
      font-size: 18px;
      line-height: 1.4;
    }
    
    .selected-store-info {
      background-color: #f9f9f9;
      border: 1px solid #ddd;
      border-radius: 8px;
      padding: 12px;
      margin-bottom: 16px;
      display: flex;
      align-items: center;
      gap: 12px;
    }
    
    .selected-store-details {
      flex: 1;
    }
    
    .selected-store-header {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 8px;
    }
    
    .selected-store-name {
      font-weight: bold;
      color: #333;
      font-size: 18px;
      text-decoration: underline;
    }
    
    .selected-store-tag {
      background-color: #c10000;
      color: white;
      padding: 2px 6px;
      border-radius: 3px;
      font-size: 18px;
    }
    
    .selected-store-address {
      color: #666;
      font-size: 18px;
      margin-bottom: 4px;
    }
    
    .selected-store-tel {
      color: #c10000;
      font-weight: bold;
      font-size: 18px;
    }
    
    .form-section {
      border-radius: 8px;
      padding: 16px 12px;
      margin-bottom: 16px;
    }
    
    .form-section h2 {
      font-size: 18px;
      margin: 0 0 16px 0;
      color: #c10000;
      text-align: center;
    }
    
    .form-group {
      margin-bottom: 20px;
    }
    
    .form-group label {
      display: block;
      margin-bottom: 8px;
      font-size: 18px;
      font-weight: bold;
    }
    
    .form-group label .required {
      background-color: #c10000;
      color: white;
      padding: 2px 6px;
      border-radius: 3px;
      font-size: 18px;
      margin-left: 6px;
      font-weight: normal;
    }
    
    .form-group label .optional {
      background-color: #888;
      color: white;
      padding: 2px 6px;
      border-radius: 3px;
      font-size: 18px;
      margin-left: 6px;
      font-weight: normal;
    }
    
    .form-group input:not([type="radio"]):not([type="checkbox"]),
    .form-group select,
    .form-group textarea {
      width: 100%;
      padding: 10px 14px;
      border: 2px solid #ddd;
      border-radius: 8px;
      font-size: 22px;
      background-color: white;
      transition: border-color 0.3s;
      line-height: 1.2;
      min-height: 50px;
      color: #333;
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none;
    }
    
    /* selectのドロップダウン矢印をカスタマイズ */
    .form-group select {
      background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23666' d='M2 5L0 3h4z'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
      background-size: 12px;
      padding-right: 40px;
    }
    
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus {
      outline: none;
      border-color: #c10000;
    }
    
    .form-group input.completed {
      border-color: #4CAF50;
      background-color: #f8fff8;
    }
    
    .form-row {
      display: flex;
      gap: 12px;
    }
    
    .form-row > div {
      flex: 1;
    }
    
    .radio-group {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      gap: 12px;
      margin-top: 12px;
    }
    
    /* IE11対応：gap代替 */
    .radio-group > .radio-item:not(:last-child) {
      margin-bottom: 12px;
    }
    
    .radio-item {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      padding: 18px 24px;
      background-color: white;
      border: 2px solid #ddd;
      border-radius: 8px;
      cursor: pointer;
      -webkit-transition: all 0.3s;
      -o-transition: all 0.3s;
      transition: all 0.3s;
      min-height: 70px;
    }
    
    .radio-item:hover {
      background-color: #f5f5f5;
    }
    
    .radio-item input[type="radio"] {
      margin-right: 12px;
      width: 24px;
      height: 24px;
      min-width: 24px;
      min-height: 24px;
      cursor: pointer;
      vertical-align: middle;
    }
    
    .radio-item label {
      vertical-align: middle;
      margin-bottom: 0;
      font-size: 22px;
      font-weight: bold;
    }
    
    .radio-item.selected {
      border-color: #4CAF50;
      background-color: #f8fff8;
    }
    
    .note-text {
      font-size: 18px;
      color: #888;
      margin-top: 8px;
      padding: 8px 12px;
      background-color: #f0f0f0;
      border-radius: 4px;
    }
    
    .note-text.highlight {
      background-color: #fff0f0;
      color: #c10000;
      border-left: 4px solid #c10000;
      font-weight: bold;
      border-radius: 6px;
    }
    
    .note-text.highlight::before {
      content: "";
      margin-right: 0px;
    }
    
    .error-message {
      color: #c10000;
      font-size: 14px;
      margin-top: 4px;
      padding: 6px 8px;
      background-color: #fff5f5;
      border-left: 3px solid #c10000;
      border-radius: 4px;
      line-height: 1.4;
    }
    
    .button-container {
      padding: 16px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      gap: 16px;
      position: -webkit-sticky;
      position: sticky;
      bottom: 0;
      background-color: white;
      border-top: 1px solid #eee;
      margin: 0 -16px;
    }
    
    /* IE11対応：gap代替 */
    .button-container > * + * {
      margin-top: 16px;
    }
    
    .button-row {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -ms-flex-direction: row;
      flex-direction: row;
      gap: 12px;
    }
    
    /* IE11対応：gap代替 */
    .button-row > * + * {
      margin-left: 12px;
    }
    
    .button {
      padding: 14px 20px;
      border-radius: 25px;
      font-size: 16px;
      font-weight: bold;
      cursor: pointer;
      text-decoration: none;
      text-align: center;
      border: none;
      -webkit-transition: all 0.3s;
      -o-transition: all 0.3s;
      transition: all 0.3s;
      min-height: 50px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      -webkit-box-flex: 1;
      -ms-flex: 1;
      flex: 1;
    }
    
    .button-primary {
      background-color: #c10000;
      color: white;
      -webkit-box-shadow: 0 2px 8px rgba(193, 0, 0, 0.3);
      box-shadow: 0 2px 8px rgba(193, 0, 0, 0.3);
    }
    
    .button-primary:hover {
      background-color: #a00000;
      -webkit-transform: translateY(-1px);
      -ms-transform: translateY(-1px);
      transform: translateY(-1px);
      -webkit-box-shadow: 0 4px 12px rgba(193, 0, 0, 0.4);
      box-shadow: 0 4px 12px rgba(193, 0, 0, 0.4);
    }
    
    .button-secondary {
      background-color: #f0f0f0;
      color: #666;
      border: 1px solid #ddd;
    }
    
    .button-secondary:hover {
      background-color: #e0e0e0;
    }
    
    .form-step {
      display: none;
    }

    .form-step.active {
      display: block;
    }
    
    @media (max-width: 480px) {
      .radio-item input[type="radio"] {
        width: 28px;
        height: 28px;
        min-width: 28px;
        min-height: 28px;
      }
    }
    
    @media (min-width: 768px) {
      main {
        max-width: 900px;
        margin: 0 auto;
        padding: 24px;
        padding-bottom: 100px;
      }
      
      .button-container {
        position: relative;
        max-width: 900px;
        margin: 20px auto 0;
        left: auto;
        right: auto;
        bottom: auto;
        -webkit-box-shadow: none;
        box-shadow: none;
        border-top: none;
        padding: 20px 24px;
      }
      
      .button-row {
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        gap: 20px;
      }
      
      /* IE11対応：gap代替（PC版） */
      .button-row > * + * {
        margin-left: 20px;
      }
      
      .button {
        min-width: 160px;
        -webkit-box-flex: 0;
        -ms-flex: none;
        flex: none;
      }
      
      .radio-group {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        gap: 16px;
      }
      
      /* IE11対応：gap代替（PC版） */
      .radio-group > .radio-item:not(:last-child) {
        margin-bottom: 0;
        margin-right: 16px;
      }
      
      .form-section {
        padding: 24px;
      }
      
      .form-group input:not([type="radio"]):not([type="checkbox"]),
      .form-group select,
      .form-group textarea {
        padding: 12px 16px;
        font-size: 20px;
        line-height: 1.2;
        min-height: 54px;
      }
      
      .form-group select {
        background-position: right 16px center;
        padding-right: 44px;
      }
      
      .form-group label {
        font-size: 16px;
      }
      
      .store-selection,
      .selected-store-info {
        padding: 16px;
      }
      
      .progress-bar {
        padding: 12px 16px;
        font-size: 16px;
      }
      
      .current-step,
      .step-title {
        font-size: 16px;
      }
    }